Python实现CSV单/双列带标签组合并输出至对应文件需求
用Python快速实现CSV列拆分与组合需求
嘿,我来给你个实用的Python方案,完美匹配你的需求——不管是单独提取每个特征列+label生成文件,还是两两特征列组合+label生成文件,都能轻松搞定。先给你搭好测试用的原始CSV数据,你可以直接用这个来验证效果:
F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,label a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,L1 b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,L2
接下来直接上代码,我会分两部分解释,保证你一看就懂:
1. 生成单列+label的文件
我们用pandas来处理CSV,先安装pandas(如果没装的话:pip install pandas),然后运行下面的代码:
import pandas as pd # 读取原始CSV文件 df = pd.read_csv("original.csv") # 替换成你的原始文件名 # 遍历所有F列(F1到F10) for i in range(1, 11): col_name = f"F{i}" # 选择当前列和label列 single_col_df = df[[col_name, "label"]] # 保存为fileN.csv,比如file1.csv对应F1+label single_col_df.to_csv(f"file{i}.csv", index=False)
运行这段代码后,你会得到10个文件:file1.csv到file10.csv,每个文件里都是对应的单个特征列加上label列的数据。
2. 生成双列+label的文件
这部分需要用到itertools.combinations来生成所有两两特征列的组合,避免手动写所有配对:
import pandas as pd from itertools import combinations # 读取原始CSV文件 df = pd.read_csv("original.csv") # 获取所有F列的列表 feature_cols = [f"F{i}" for i in range(1, 11)] # 生成所有两两组合的列对 col_pairs = combinations(feature_cols, 2) # 遍历每个组合,生成文件 for idx, pair in enumerate(col_pairs, start=1): # 组合列对 + label列 double_col_df = df[[*pair, "label"]] # 保存为2C_fileN.csv,比如2C_file1.csv对应F1+F2+label double_col_df.to_csv(f"2C_file{idx}.csv", index=False)
这段代码会生成C(10,2)=45个文件,每个文件对应一对不同的特征列加上label列,文件名从2C_file1.csv到2C_file45.csv,完全覆盖所有双列组合的需求。
小提示
- 记得把代码里的
original.csv替换成你实际的原始CSV文件名。 - 如果你的特征列不是严格的F1到F10,也可以调整
feature_cols的生成方式,比如直接从df.columns里筛选包含"F"的列。
内容的提问来源于stack exchange,提问作者Yoekleng Kuy
相关产品推荐
相关产品推荐

