将一列的唯一值转换为包含另一列中相应值的多列PYTHON

时间:2019-06-03 09:21:46

标签: python pandas

我正在寻找解决方案,发布在:

Transform unique values of a column into multiple columns containing their corresponding values in another column

但是在PYTHON中。

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要df.pivot_table()

df.pivot_table(index='ID',columns='Fruit',values='n',fill_value=0)

Fruit  Apple  Banana  Orange  Pear  Plum
ID                                      
1000       0       1       3     1     0
1001       0       1       0     0     2
1002       0       1       0     0     0
1003       0       1       2     1     1
1004       2       2       1     1     0

答案 1 :(得分:1)

data = {'id' : 
[1000,1000,1000,1001,10001,1002,1003,1003,1003,1003,1004,1004,1004,1004],
'Fruit' :['Banana', 'Orange', 'Pear', 'Banana', 'Plum', 'Banana', 'Banana', 'Orange', 
'Pear', 'Plum', 'Apple', 'Banana', 'Orange', 'Pear'],
'num' : [1,3,1,1,2,1,1,2,1,1,2,2,1,1]}

df = pd.DataFrame(data)

import numpy as np
df.pivot(index='id', columns='Fruit', values='num').replace(np.nan, 0)