从现有数据框中将某些列导出到新的csv文件

时间:2018-05-09 09:28:23

标签: python pandas csv

我有一个名为'data'的数据框,有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未定义”,但我确实有52列要导出到新的csv文件,编写每个列名称的时间太长了(粒子ID,区域(ABD) ,纵横比......等)。有没有一种快速的说法“只需从现有数据框中取出前52列并将它们放入新的csv文件中?

提前非常感谢!

2 个答案:

答案 0 :(得分:0)

useful_columns = ['title column1','title column2']
data.loc[:,useful_columns].to_csv('new.csv')

如果您可以提供列的标题,它应该可以工作。 否则它是:

useful_columns = [0:52]
data.iloc[:,useful_columns].to_csv('new.csv')

答案 1 :(得分:0)

我可以通过两种方式来思考,具体取决于哪个更重要 - 能够编写您想要选择的几个列或完全取消选择“最后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]]

然后你只丢掉最后三个。我当然会建议检查订单是否保持...当我尝试它有效但第一个更可靠我认为