我有一个这样的数据框:
Col1 Col2
A Foo1
A Foo3
B Foo1
B Foo3
B Foo4
C Foo1
D Foo3
D Foo4
我需要这样的输出:
Foo1 Foo3 Foo4
A 1 1 0
B 1 1 1
C 1 0 0
D 0 1 1
在不使用python中的foreach循环的情况下,熊猫最简单的方法是什么?
答案 0 :(得分:1)
最简单的是crosstab
:
df1 = pd.crosstab(df['Col1'], df['Col2'])
另一种解决方案是GroupBy.size
和unstack
:
df1 = df.groupby(['Col1','Col2']).size().unstack(fill_value=0)
print (df1)
Col2 Foo1 Foo3 Foo4
Col1
A 1 1 0
B 1 1 1
C 1 0 0
D 0 1 1