我需要计算列持续时间和公里数的每日平均值 值 ==1 且值 = 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
如何修改此解决方案以获得持续时间_value0、持续时间_value1、km_value0 和 km_value1 的平均值?
df = df.set_index('Date').groupby(pd.Grouper(freq='d')).mean().dropna(how='all')
print (df)
duration km
Date
2015-03-28 0.5 1.0
2015-03-30 1.5 4.0
2015-04-22 3.0 7.0
2015-04-23 0.0 0.0
最佳答案
我相信按日期
和值
进行分组应该可以做到。
调用dfGroupBy.mean
,然后调用df.reset_index
以获得所需的输出:
In [713]: df.set_index('Date')\
.groupby([pd.Grouper(freq='d'), 'value'])\
.mean().reset_index(1, drop=True)
Out[713]:
duration km
Date
2015-03-28 0.0 0.0
2015-03-28 1.0 2.0
2015-03-30 NaN 5.0
2015-03-30 1.0 3.0
2015-04-22 3.0 7.0
2015-04-23 0.0 NaN
关于python - 按 pandas 数据框分组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45839539/