如何用Pandas将字典中存储的DataFrame值转为对应键命名的DataFrame?
如何将字典中的DataFrame转换为对应键名的独立对象
嘿,这个需求其实挺容易搞定的!不过先提个小细节:像25Dec2017_28Jan2018这种以数字开头的名称,是不合法的Python变量名,直接创建会报错。如果一定要用这类名称,可能需要做些小调整,下面我会把两种可行方案都讲清楚:
方法一:循环自动创建(高效推荐)
如果你的字典里有6个DataFrame,循环遍历的方式最省事儿,不用一个个手动写赋值语句。假设你的字典变量名为df_dict,直接用下面的代码:
# 假设你的字典结构如下(键是目标名称,值是对应DataFrame对象) df_dict = { "_20Nov2017_24Dec2017": your_df1, "25Dec2017_28Jan2018": your_df2, # 剩下4个键值对依次补充... } # 遍历字典,动态创建合法的DataFrame对象 for df_name, df_data in df_dict.items(): # 处理以数字开头的非法变量名,自动添加前缀df_ if df_name[0].isdigit(): valid_var_name = f"df_{df_name}" else: valid_var_name = df_name # 将DataFrame绑定到全局命名空间 globals()[valid_var_name] = df_data
执行完这段代码后,你就能直接用_20Nov2017_24Dec2017、df_25Dec2017_28Jan2018这些名称来访问对应的DataFrame了——如果不想加前缀,你可以把原始键名改成以字母/下划线开头的格式(比如_25Dec2017_28Jan2018),这样就能直接用原名称了。
方法二:手动逐个赋值(直观但繁琐)
如果你的DataFrame数量不多,也可以直接手动赋值,虽然麻烦但更直观(同样要注意变量名合法性):
# 直接将字典中的值赋值给对应变量 _20Nov2017_24Dec2017 = df_dict["_20Nov2017_24Dec2017"] # 处理非法名称,加前缀 df_25Dec2017_28Jan2018 = df_dict["25Dec2017_28Jan2018"] # 依次给剩下4个DataFrame做同样的赋值操作
不管用哪种方法,完成后你直接输入变量名就能查看DataFrame的快照啦~
内容的提问来源于stack exchange,提问作者natnay
相关产品推荐
相关产品推荐

