如何将含取值'1'-'4'列的单个DataFrame拆分为4个子DataFrame
解决方法:将DataFrame按指定列值拆分为多个子DataFrame
没问题,这事儿用Pandas处理超简单!我给你两种实用方案,根据你的场景选就行:
方法1:直接布尔索引筛选(适合类别数量少的情况)
如果你的目标列只有'1'到'4'这四个值,直接写条件筛选最直观。假设你的原始DataFrame叫df,目标列名为target_col(记得替换成你实际的列名):
import pandas as pd # 拆分出各个子DataFrame df1 = df[df['target_col'] == '1'] df2 = df[df['target_col'] == '2'] df3 = df[df['target_col'] == '3'] df4 = df[df['target_col'] == '4']
注意:因为你说列值是字符串类型的'1'到'4',所以条件里一定要用字符串比较,别写成数字1,否则会筛选不到数据哦。
方法2:用groupby批量生成(适合可扩展的场景)
如果以后你的列值可能增加,或者想更整洁地管理这些子DataFrame,推荐用groupby把结果存到字典里:
# 按目标列分组,自动生成键为'df1'、'df2'...的字典 sub_dfs = {f'df{val}': group for val, group in df.groupby('target_col')} # 调用子DataFrame的方式 df1 = sub_dfs['df1'] df2 = sub_dfs['df2']
这种方式的好处是不用手动写每个筛选语句,不管有多少个类别都能自动处理,而且用字典管理子DataFrame更不容易混乱。
内容的提问来源于stack exchange,提问作者Isoka05m
相关产品推荐
相关产品推荐

