获取上个月Pandas每天的平均值

2024-10-01 11:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到过去30天的平均值

这意味着对于第3行,它将是2017-12-15 00:02:00和2018-01-13 00:03:00 1360.618915之间的收盘值的平均值。 到目前为止,我创建了名为minusMonth和plusDay的帮助专栏

结果应该是月底和星期四之间的接近值的平均值。 然而,现在每个时段的计算值相同

gData['result']=gData[(gData['Local time']>gData['minusMonth']) & (gData['Local time']<gData['plusDay'])]['Close'].mean()

Local time  Close   minusMonth  plusDay result
0   2018-01-12 00:00:00 1323.149    2017-12-15 00:00:00 2018-01-13 00:00:00 1360.618915
1   2018-01-12 00:01:00 1322.958    2017-12-15 00:01:00 2018-01-13 00:01:00 1360.618915
2   2018-01-12 00:02:00 1322.951    2017-12-15 00:02:00 2018-01-13 00:02:00 1360.618915
3   2018-01-12 00:03:00 1322.821    2017-12-15 00:03:00 2018-01-13 00:03:00 1360.618915
4   2018-01-12 00:04:00 1322.801    2017-12-15 00:04:00 2018-01-13 00:04:00 1360.618915
... ... ... ... ... ...
1172095 2020-04-04 23:55:00 1617.048    2020-03-07 23:55:00 2020-04-05 23:55:00 1360.618915
1172096 2020-04-04 23:56:00 1617.048    2020-03-07 23:56:00 2020-04-05 23:56:00 1360.618915
1172097 2020-04-04 23:57:00 1617.048    2020-03-07 23:57:00 2020-04-05 23:57:00 1360.618915
1172098 2020-04-04 23:58:00 1617.048    2020-03-07 23:58:00 2020-04-05 23:58:00 1360.618915
1172099 2020-04-04 23:59:00 1617.048    2020-03-07 23:59:00 2020-04-05 23:59:00 1360.618915
1172100 rows × 9 columns

当我使用文本而不是列引用时,它是有效的

[IN] gData[(gData['Local time']>'2018.05.20') & (gData['Local time']<'2018.06.20')]['Close'].mean()
[OUT]1294.6491271981902

这几天我一直很累,希望有人能帮我


Tags: columnsclosetimelocalplusresultmeanrows
1条回答
网友
1楼 · 发布于 2024-10-01 11:33:14

您可以使用lambda函数应用于带有axis = 1的整个数据帧,因为它应该应用于数据帧的每一行

df['result'] = df.apply(lambda x: df[(x['Local time']>df['minusMonth']) & (x['Local time']<df['plusDay'])]['Close'].mean(), axis = 1)

相关问题 更多 >