如何将字典中按周拆分的pandas DataFrame转为独立可调用变量
解决方案
你之前使用pd.dict_to_df不生效的原因是:该方法的作用是将字典结构转换为单个DataFrame对象,和你要拆分生成多个独立变量的需求完全不匹配。
你可以通过修改全局命名空间globals()的方式,将字典中的键值对直接注册为全局可调用变量,实现代码如下:
import pandas as pd import numpy as np # 你原有的拆分逻辑 d = {} for week, data in df.groupby(pd.cut(df['week'], np.arange(0, 52+6, 6))): d[f'df{len(d.items())}'] = data # 新增:将字典中的子DataFrame注册为独立变量 for var_name, df_sub in d.items(): globals()[var_name] = df_sub
执行完上述代码后,就可以直接调用df0、df1等变量使用对应子表。
注意事项
- 该操作会覆盖全局命名空间中已存在的同名变量,执行前请确认没有和
df0、df1等命名冲突的已有变量 - 通常更推荐保留字典存储的形式,批量处理子表时直接遍历字典
d会比调用动态生成的变量更易维护,也避免污染全局命名空间 - 如果是在函数内部使用这些子表,不推荐生成动态局部变量,直接通过字典
d调用对应子表即可
内容的提问来源于stack exchange,提问作者Coke Verdejo
相关产品推荐
相关产品推荐

