这应该很简单,但是我刚接触python。有什么建议吗?
#original dataframe
df = pd.DataFrame({'year':[1,1,1,1,1],
'month':[4,4,4,4,4],
'mode': ['a','b','a','a','b']},
columns=['year','month','mode'])
#pivot/groupby etc
# df2=df.pivot(columns=('year','month'), values=('mode')).count()
#create this dataframe
df2 = pd.DataFrame({'year':[1],
'month':[4],
'a': [3],
'b':[2]},
columns=['year','month','a','b'])
我正在Koalas Apache Spark环境(documentation)中工作,因此解决方案应该可以在其上工作。
答案 0 :(得分:1)
df.pivot_table(index=['year','month'], aggfunc='size', columns='mode')
答案 1 :(得分:1)
或者,您可以使用pd.get_dummies()
:
pd.get_dummies(df).groupby(['year','month']).sum()
结果:
mode_a mode_b
year month
1 4 3 2
注意:我不确定在Koalas Apache Spark环境中是否可以使用。