pandas如何按DataFrame的Class列唯一值批量生成对应新DataFrame
实现代码
你可以直接用以下代码完成需求,逻辑简单且运行效率适配你的数据体量:
- 首先确保你已经加载了原始DataFrame(示例为csv读取,你可以替换为自己的加载逻辑):
import pandas as pd # 加载原始数据,替换为你自己的文件路径/加载方式 df = pd.read_csv("your_file_path.csv")
- 批量生成23个目标DataFrame,用字典存储方便后续调用:
# 获取Class列所有唯一分类值 class_unique = df["Class"].unique() # 字典的键为Class值,值为对应的新DataFrame result_dfs = {} for cls in class_unique: # 复制除Class外的所有原始列 current_df = df.drop(columns=["Class"]).copy() # 新增对应分类的0/1标识列 current_df[cls] = (df["Class"] == cls).astype(int) result_dfs[cls] = current_df
调用&导出说明
- 要获取某个分类的DataFrame,直接按分类名取字典值即可,比如获取
OPIOID_TYPE对应的表:print(result_dfs["OPIOID_TYPE"]) - 如果需要批量导出为csv文件,可以追加以下代码:
for cls_name, df_item in result_dfs.items(): # 分类名作为文件名,不导出行索引 df_item.to_csv(f"{cls_name}.csv", index=False)
内容的提问来源于stack exchange,提问作者Melderon
相关产品推荐
相关产品推荐

