【发布时间】:2023-03-07 10:56:01
【问题描述】:
作为here,我需要计算列的持续时间和公里的平均值 value ==1 和 values = 0 的行。 这次我希望聚合周期灵活。
df
Out[20]:
Date duration km value
0 2015-03-28 09:07:00.800001 0 0 0
1 2015-03-28 09:36:01.819998 1 2 1
2 2015-03-30 09:36:06.839997 1 3 1
3 2015-03-30 09:37:27.659997 nan 5 0
4 2015-04-22 09:51:40.440003 3 7 0
5 2015-04-23 10:15:25.080002 0 nan 1
对于 1 天的聚合期,我可以使用之前建议的解决方案:
df.pivot_table(values=['duration','km'],columns=['value'],index=df['Date'].dt.date,aggfunc='mean'
ndf.columns = [i[0]+str(i[1]) for i in ndf.columns]
duration0 duration1 km0 km1
Date
2015-03-28 0.0 1.0 0.0 2.0
2015-03-30 NaN 1.0 5.0 3.0
2015-04-22 3.0 NaN 7.0 NaN
2015-04-23 NaN 0.0 NaN NaN
但是,我不知道如何更改聚合周期,例如,我想将它作为函数的参数传递......
出于这个原因,pd.Grouper(freq=freq_aggregation)、freq_aggregation = 'd' 或 '60s' 的方法将是首选...
【问题讨论】:
标签: python pandas dataframe group-by pivot-table