python - 如何重新采样多个数据帧?
问题描述
我有 27 个具有相同索引和列的数据框。这些数据框是每小时数据,我想将它们全部转换为每月数据。我去寻找捷径。这样做时,我想对数据求和。我已将这些数据框放在一个列表中。
df_list = [
df1, df2, df3, df4, df5, df6, df7, df8, df9
df10, df11, df12, df13, df14, df15, df16, df17, df18
df19, df20, df21, df22, df23, df24, df25, df26, df27
]
for df in df_list:
df = df.resample('M').sum()
Example of any dataframe:
Date A B C D
2019-10-01 00:00:00 3.4 2.5 1.6 5.1
2019-10-01 01:00:00 2.3 2.9 4.1 5.9
2019-10-01 02:00:00 1.7 6.7 9.2 4.8
2019-10-01 03:00:00 1.8 1.8 3.6 2.7
2019-10-01 04:00:00 6.1 3.4 2.3 3.1
此代码的输出不是我想要的输出。我怎样才能做到这一点?
解决方案
一个想法是使用列表理解并将输出分配给列表:
df_list = [df.resample('M').sum() for df in df_list]
或使用重新采样的 DataFrame 创建新列表:
dfs = []
for df in df_list:
df = df.resample('M').sum()
dfs.append(df)
另一个想法是用循环覆盖位置列表range
:
for i in range(len(df_list)):
df_list[i] = df_list[i].resample('M').sum()