我有一个如下所示的数据框:
import pandas as pd
df = pd.DataFrame({'Date':[2019-08-06,2019-08-08,2019-08-01,2019-10-12], 'Name':['A','A','B','C'], 'grade':[100,90,69,80]})
我想按日期和日期对数据进行分组,也要按名称分组。然后总结其他列。
因此,所需的输出将与此类似
df = pd.DataFrame({'Date':[2019-08, 2019-08, 2019-10-12], 'Name':['A','B','C'], 'grade':[190,69,80]})
我尝试过grouper
df.groupby(pd.Grouper(freq='M').sum()
但是,它不会播放“名称”列,而只会删除整个列。
答案 0 :(得分:1)
我认为日期列的类型为datetime
。然后与
grouped = df.groupby([df.Date.dt.year, df.Date.dt.month, 'Name']).sum()
答案 1 :(得分:0)
尝试:
df['Date'] = pd.to_datetime(df.Date)
df.groupby([df.Date.dt.to_period('M'), 'Name']).sum().reset_index()
Date Name grade
0 2019-08 A 190
1 2019-08 B 69
2 2019-10 C 80