首页 > 解决方案 > 从现有数据框中将一些列导出到新的 csv 文件

问题描述

我有一个名为“数据”的数据框,有 55 列,我想创建一个包含前 52 列的新 csv 文件。我不想包含的最后三个列名是“Class”、“part_id”和“image_file”。我一直在寻找,解决方案是这样的:

import pandas as pd
useful_columns = [col1,col2,...] #list the columns I need
data[useful_columns].to_csv('new.csv', index=False) #prevent creating extra column

#reference: https://stackoverflow.com/questions/46546388/how-to-skip-columns-of-csv-file

我收到一条错误消息,提示“col1, col2 not defined”,但我确实有 52 个列要导出到新的 csv 文件,写每个列名(粒子 ID、面积(ABD)、纵横比)太长了...ETC)。有没有一种快速的方法可以说“只需从现有数据框中取出前 52 列并将它们放入一个新的 csv 文件中?

提前非常感谢!

标签: pythonpandascsv

解决方案


我能想到两种方法,具体取决于哪一种更重要——能够写出你想要选择的几列或完全取消选择“最后 3”的数字

如果你能写出很少的列名,它总是更可靠

 deselectlist =[ 'Class', 'part_id' , 'image_file']
 selectlist =[x for x in data.columns if x not in deselectlist]
 datatowrite = date[selectlist]

 datatowrite.to_csv('new.csv')

或者,如果您不想实际编写取消选择的列的名称,您可以尝试

 columnlist = [x for x in data.columns]
 datatowrite = data[columnlist[:-2]]

那么你只删除最后三个。我当然会建议检查订单是否得到维护......当我尝试它时,但我认为第一个更可靠


推荐阅读