сводная группа по и сумма pandas фрейм данных - PullRequest
0 голосов
/ 03 августа 2020

Это должно быть просто, но я новичок в работе с 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 ( документация ), поэтому решение должно работать.

Ответы [ 2 ]

1 голос
/ 03 августа 2020

В качестве альтернативы вы можете использовать pd.get_dummies():

pd.get_dummies(df).groupby(['year','month']).sum()

результат:

            mode_a  mode_b
year month                
1    4           3       2

Примечание: я не уверен, что это работает в среде Koalas Apache Spark.

1 голос
/ 03 августа 2020
df.pivot_table(index=['year','month'], aggfunc='size', columns='mode')
...