我有以下数据格式df
Out15:
Run_299 Run_300 Month Date bkt
DateTime
2024-12-31 21:00:00 13 18 2024-12-01 2024-12-31 p
2024-12-31 21:00:00 11 12 2024-12-01 2024-12-31 p
2024-12-31 22:00:00 2 5 2024-12-01 2024-12-31 q
2024-12-31 23:00:00 113 118 2024-12-01 2023-11-30 p
2025-01-01 00:00:00 110 114 2025-01-01 2023-11-30 p我试图得到以下平均计算结果:
Date bkt mean
2024-12-31 p 13.5
2023-11-30 q 3.5
2023-11-30 p 113.75其中:
13.5 = average(13, 18, 11, 12)
3.5 =average(2, 5)
113.75=average(113, 118, 110, 114)我试过:
df.groupby(['Date', 'bkt']).mean()但这种情况并没有像预期的那样发生。我仍然得到列Run_299和Run_300
编辑:
我更改了average以表明我正在计算平均值
发布于 2020-01-30 17:30:01
在群前使用melt
df_final = (df.melt(['Month','Date','bkt'], value_name='Run_mean')
.groupby(['Date', 'bkt']).mean())
Out[202]:
Run_mean
Date bkt
2023-11-30 p 113.75
2024-12-31 p 13.50
q 3.50发布于 2020-01-30 17:23:34
使用stack和groupby的IIUC
new_df = (
df.set_index(["Date", "bkt"])
.filter(like="Run")
.stack()
.groupby(level=[0, 1])
.mean()
.reset_index()
.rename(columns={0: "Run Mean"})
)print(new_df)
Date bkt Run Mean
0 2023-11-30 p 113.75
1 2024-12-31 p 13.50
2 2024-12-31 q 3.50https://stackoverflow.com/questions/59991049
复制相似问题