python - 如何在 for 循环中分配新变量 - pandas dataframe 变量名称分配

标签 python pandas

我有一个 pandas 数据帧时间序列,在 5 分钟内递增。我想为每 5 分钟的增量分配一个变量名称。例如:

df_5min = df.resample('5min').first()
df_10min = df.resample('10min').first()
.
.
.
df_7200min = df.resample('7200min').first()

我宁愿将它们保留为单独的数据帧名称并将它们保存在内存中,而不是存储数据帧并稍后调用它 - 通过简单的编写

对于范围 (0,7201,5) 内的 i: df.to_csv('/path/df_' + str(i) + 'min.csv')

如何为每个数据帧分配一个变量名称,以便我可以在同一脚本中独立地对每个数据帧执行分析?

最佳答案

您可以创建DataFrames字典,因为globals不推荐解决方案:

#python 3.6+
dfs = {f'{x}min': df.resample(f'{x}min').first() for x in range(5,7201,5)}
#python bellow
dfs = {'{}min'.format(x): df.resample('{}min'.format(x)).first() for x in range(5,7201,5)}

示例:

rng = pd.date_range('2017-04-03 12:15:10', periods=5, freq='11Min')
df = pd.DataFrame({'a': range(5)}, index=rng)  
print (df)
                     a
2017-04-03 12:15:10  0
2017-04-03 12:26:10  1
2017-04-03 12:37:10  2
2017-04-03 12:48:10  3
2017-04-03 12:59:10  4

dfs = {f'{x}min': df.resample(f'{x}min').first() for x in range(5,16,5)}
print (dfs)
{'5min':                        a
2017-04-03 12:15:00  0.0
2017-04-03 12:20:00  NaN
2017-04-03 12:25:00  1.0
2017-04-03 12:30:00  NaN
2017-04-03 12:35:00  2.0
2017-04-03 12:40:00  NaN
2017-04-03 12:45:00  3.0
2017-04-03 12:50:00  NaN
2017-04-03 12:55:00  4.0, '10min':                      a
2017-04-03 12:10:00  0
2017-04-03 12:20:00  1
2017-04-03 12:30:00  2
2017-04-03 12:40:00  3
2017-04-03 12:50:00  4, '15min':                      a
2017-04-03 12:15:00  0
2017-04-03 12:30:00  2
2017-04-03 12:45:00  3}

然后通过字典的键进行选择:

print (dfs['5min'])
                       a
2017-04-03 12:15:00  0.0
2017-04-03 12:20:00  NaN
2017-04-03 12:25:00  1.0
2017-04-03 12:30:00  NaN
2017-04-03 12:35:00  2.0
2017-04-03 12:40:00  NaN
2017-04-03 12:45:00  3.0
2017-04-03 12:50:00  NaN
2017-04-03 12:55:00  4.0

关于python - 如何在 for 循环中分配新变量 - pandas dataframe 变量名称分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53756240/

相关文章:

Python:Pandas 合并导致 NaN

python - 如何将 Pandas DataFrame 的列转换为单独的字典,其中字典名称是列名?

python - 获取字符串中字符串的特定值

python - urllib 响应头丢失

python - 将 Tornado python Web 框架的代码转换为独立工作

python - 使用 Python 和 Pillow 返回图像的 "chunk"

python - Pandas:按对象迭代组

python - 使用 panda 或 numpy 从一个 csv 加载多个数据帧

python - pandas 6 个月期间的重新采样是如何工作的?

python - Pandas to_html() 截断字符串内容