如何快速从Pandas DataFrame导出前52列至新CSV文件?
解决方法:快速筛选DataFrame列并导出CSV
嘿,这个问题我之前也碰到过,手动列几十列名确实太折磨人了!给你两个简单的方案,不用逐一列名就能搞定:
方案一:排除不需要的列(推荐)
既然你只需要去掉3个特定列,那直接把这几个列从总列名里排除掉就好,比列52个列名轻松太多:
import pandas as pd # 先读取你的原始数据(如果还没加载的话) data = pd.read_csv('your_source_file.csv') # 定义要排除的3个列 columns_to_exclude = ['Class', 'part_id', 'image_file'] # 生成需要保留的列列表:所有列中不在排除列表里的 keep_columns = [col for col in data.columns if col not in columns_to_exclude] # 导出到新CSV,不保留索引 data[keep_columns].to_csv('new.csv', index=False)
这个方法的好处是不受列顺序影响,哪怕以后你的DataFrame列顺序变了,只要这3个列名没变,就能准确排除。
方案二:直接取前52列(适合列顺序固定的情况)
如果你的DataFrame列顺序是固定的,最后三列确实是Class、part_id、image_file,那也可以直接用位置索引取前52列:
import pandas as pd data = pd.read_csv('your_source_file.csv') # iloc[:, :52] 表示取所有行,前52列 data.iloc[:, :52].to_csv('new.csv', index=False)
这个方法代码更简洁,但要注意:如果以后列的顺序发生变化(比如新增列或者调整了列的位置),这个方法就会取错列,所以更适合列结构固定的场景。
为啥你之前的代码报错?
你之前写的[col1,col2,...]里的col1、col2是未定义的变量,Python不知道它们是什么。你需要用字符串形式的列名(比如['column_name1', 'column_name2']),但手动写52个显然不现实,所以上面的两种方法完美解决这个问题~
内容的提问来源于stack exchange,提问作者Olga
相关产品推荐
相关产品推荐

