我有一个名为'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文件中?
提前非常感谢!
答案 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]]
然后你只丢掉最后三个。我当然会建议检查订单是否保持...当我尝试它有效但第一个更可靠我认为