大Pandas的亚群

2024-10-03 04:32:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Pandas数据帧,其中一列如下所示:

0              {u'funny': 2, u'useful': 0, u'cool': 0}
1        {u'funny': 370, u'useful': 487, u'cool': 296}
2             {u'funny': 2, u'useful': 17, u'cool': 1}
3     {u'funny': 1233, u'useful': 2452, u'cool': 1875}
4              {u'funny': 4, u'useful': 7, u'cool': 2}
5        {u'funny': 408, u'useful': 819, u'cool': 557}
6        {u'funny': 321, u'useful': 673, u'cool': 430}
7           NaN
8              {u'funny': 0, u'useful': 8, u'cool': 0}

我想把这个列分成单独的列,而不是显式地迭代所有的行(有很多行,而且这是一种不好的做法)。在

DataFrame.ThisColumn[1]["funny"]返回2,但DataFrame.ThisColumn[:]["funny"]不起作用。。。。在

我怎样才能把它分成单独的列呢?在

谢谢。在


Tags: 数据dataframepandasnanfunnyusefulcoolthiscolumn
1条回答
网友
1楼 · 发布于 2024-10-03 04:32:17

您只需将序列构造函数应用于该列:

In [11]: df
Out[11]:
                                               dics
0           {u'funny': 2, u'useful': 0, u'cool': 0}
1     {u'funny': 370, u'useful': 487, u'cool': 296}
2          {u'funny': 2, u'useful': 17, u'cool': 1}
3  {u'funny': 1233, u'useful': 2452, u'cool': 1875}
4           {u'funny': 4, u'useful': 7, u'cool': 2}
5     {u'funny': 408, u'useful': 819, u'cool': 557}
6     {u'funny': 321, u'useful': 673, u'cool': 430}
7           {u'funny': 0, u'useful': 8, u'cool': 0}

In [12]: df['dics'].apply(pd.Series)
Out[12]:
   cool  funny  useful
0     0      2       0
1   296    370     487
2     1      2      17
3  1875   1233    2452
4     2      4       7
5   557    408     819
6   430    321     673
7     0      0       8

然而,我认为,在构建数据帧时,最好将它们分开,而不是在它们已经在数据帧中的时候。在

相关问题 更多 >