如何从 Pandas 数据框中的分钟数据中删除每日平均值
How to remove daily mean from minute data in a Pandas dataframe
我有一个带有分钟日期时间索引的 pandas 数据框:
Index
Col1
2022-12-25 09:01:00
5
2022-12-25 09:10:00
15
2022-12-25 11:12:00
10
2022-12-26 10:05:00
2
2022-12-26 12:29:00
2
2022-12-26 13:56:00
5
我想从这个数据中删除日平均值,得到这个数据框(这里是第一天 10,第二天 3):
Index
Col1
2022-12-25 09:01:00
-5
2022-12-25 09:10:00
5
2022-12-25 11:12:00
0
2022-12-26 10:05:00
-1
2022-12-26 12:29:00
-1
2022-12-26 13:56:00
2
假设 df 是您的数据框,这应该可以解决问题:
for day, df_group in df.groupby(by=df.index.day):
df.loc[df_group.index,"Col1"] -= df_group["Col1"].mean()
我有一个带有分钟日期时间索引的 pandas 数据框:
Index | Col1 |
---|---|
2022-12-25 09:01:00 | 5 |
2022-12-25 09:10:00 | 15 |
2022-12-25 11:12:00 | 10 |
2022-12-26 10:05:00 | 2 |
2022-12-26 12:29:00 | 2 |
2022-12-26 13:56:00 | 5 |
我想从这个数据中删除日平均值,得到这个数据框(这里是第一天 10,第二天 3):
Index | Col1 |
---|---|
2022-12-25 09:01:00 | -5 |
2022-12-25 09:10:00 | 5 |
2022-12-25 11:12:00 | 0 |
2022-12-26 10:05:00 | -1 |
2022-12-26 12:29:00 | -1 |
2022-12-26 13:56:00 | 2 |
假设 df 是您的数据框,这应该可以解决问题:
for day, df_group in df.groupby(by=df.index.day):
df.loc[df_group.index,"Col1"] -= df_group["Col1"].mean()