如何通过编程批量拆分DataFrame生成多个子DataFrame
按ID批量拆分DataFrame为多个子DataFrame
推荐方案:用字典存储子DataFrame(更易维护)
这种方式不会污染全局命名空间,不管ID有多少个都能自动处理,后续调用也更清晰:
import pandas as pd dfa = pd.DataFrame({"ID": ["one", "two", "three"],"Color":["Red", "White", "Blue"],"Length":["16", "14.97", "22.75"]}) # 按ID分组并转换为字典,键为ID值,值为对应子DataFrame dfs_dict = {id_val: group for id_val, group in dfa.groupby('ID', sort=False)}
使用时直接通过字典键调用:
# 获取ID为"one"的子DataFrame print(dfs_dict['one'])
可选方案:动态创建全局变量(不推荐)
如果确实需要生成独立的变量(比如one、two这类),可以通过globals()动态创建,但这种方法会让命名空间混乱,数据量大时不好维护:
import pandas as pd dfa = pd.DataFrame({"ID": ["one", "two", "three"],"Color":["Red", "White", "Blue"],"Length":["16", "14.97", "22.75"]}) # 遍历所有唯一ID,动态生成对应变量 for id_val in dfa['ID'].unique(): globals()[id_val] = dfa[dfa['ID'].astype(str) == id_val]
执行后直接用变量名调用即可:
print(one)
内容的提问来源于stack exchange,提问作者Shawn Jamal
相关产品推荐
相关产品推荐

