熊猫:计算值的频率并转换为列

时间:2018-07-20 14:30:50

标签: python pandas

例如,我有一个这样的数据框:

Cat cat= new Cat1();
cat.meow();

我想得到一个像这样的数据框:

     id    0     1     2     3     4     5
0    1     a     b    null   c    null  null
1    2    null   a    null   d     e    null
2    3     d    null   c    null   a    null
3    4    null  null   d    null   b     e     
4    5     c     a     e     b    null   b

该怎么做?谢谢!

编辑: 我试过了 id null a b c d e 0 1 3 1 1 1 0 0 1 2 3 1 0 0 1 1 2 3 3 1 0 1 1 0 3 4 3 0 1 0 1 1 4 5 1 1 2 1 0 1

就是这样!

1 个答案:

答案 0 :(得分:3)

您需要get_dummies

df.fillna('null').set_index('id').stack().str.get_dummies().sum(level=0)
Out[637]: 
    a  b  c  d  e  null
id                     
1   1  1  1  0  0     3
2   1  0  0  1  1     3
3   1  0  1  1  0     3
4   0  1  0  1  1     3
5   1  2  1  0  1     1