Python 如何对多个数据帧重新采样?
我有27个数据帧,具有相同的索引和列。这些数据帧是每小时的数据,我想把它们全部转换成每月的数据。我去寻找捷径。在进行此操作时,我要对数据求和。 我已将这些数据帧放入列表中Python 如何对多个数据帧重新采样?,python,pandas,resampling,Python,Pandas,Resampling,我有27个数据帧,具有相同的索引和列。这些数据帧是每小时的数据,我想把它们全部转换成每月的数据。我去寻找捷径。在进行此操作时,我要对数据求和。 我已将这些数据帧放入列表中 df_list = [ df1, df2, df3, df4, df5, df6, df7, df8, df9 df10, df11, df12, df13, df14, df15, df16, df17, df18 df19, df20, df21, df2
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]
或使用重新采样的数据帧创建新列表:
dfs = []
for df in df_list:
df = df.resample('M').sum()
dfs.append(df)
另一个想法是使用loop by
range
按位置覆盖列表:
for i in range(len(df_list)):
df_list[i] = df_list[i].resample('M').sum()
也许你可以添加一些关于你正在使用的编程语言、环境和工具的信息。对不起:(,我编辑了我的问题。你能添加一些数据帧的示例行吗?我添加了一些行和列。为什么我们必须添加“range”?@JuniorESE-因为
range(len(df_列表))
根据df列表的长度创建范围,然后通过循环值将值返回给第一个循环df_list[0]=df_list[0]。重采样('M').sum()
,对于第二个df_list[1]=df_list[1]。重采样('M').sum()
以及类似的值。Ooh好的,我理解,谢谢:))df_list=[df.resample('M').sum'),df在df_列表中的值]这是现在的工作。我的意思是,当脱离for循环时,所需的输出不会出现。