【问题标题】:How to expand series into dataframe如何将系列扩展到数据框
【发布时间】:2021-04-25 06:14:16
【问题描述】:

假设我们有一个像这样的数据框:

data = pd.DataFrame({'num': [1,2,3], 
                     'tags': [['toto','tata','titi'],
                             ['one','two','three'],
                             ['he','she','us']]})

数据


  num   tags
0   1   [toto, tata, titi]
1   2   [one, two, three]
2   3   [he, she, us]

我不明白为什么 data.tags.apply(pd.Series) 可以将 data.tags 扩展为自己的数据框

data.tags.apply(pd.Series)

    0      1        2
0   toto  tata   titi
1   one   two    three
2   he    she    us

而DataFrame不能!

data.tags.apply(pd.DataFrame) 

0           0
0  toto
1  tata
2  titi
1           0
0  one
1  two
2  three
2           0
0  he
1  she
2  us
Name: tags, dtype: object

它是如何工作的?

【问题讨论】:

  • 你的预期输出是什么?

标签: python pandas dataframe series expand


【解决方案1】:

在这种情况下,您可以将apply() 视为逐行通过列tags。所以应用pd.Series 将使每个列表成为一个“水平”系列。然后,由于您有这些“水平”系列的“垂直”列,因此您只剩下一个数据框。相反,应用pd.DataFrame 将使每个列表成为“垂直”数据框,因此“垂直”数据框的“垂直”列将为您提供一系列数据框。

希望从“水平”和“垂直”的角度来思考它,这有助于对正在发生的事情的直觉有所帮助。

【讨论】:

  • 感谢您的帮助。是的,这样想更清楚一点
猜你喜欢
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多