экспортировать некоторые столбцы в новый CSV-файл из существующего кадра данных - PullRequest
0 голосов
/ 09 мая 2018

У меня есть фрейм данных с именем «data» с 55 столбцами, и я хочу создать новый CSV-файл с первыми 52 столбцами. Последние три названия столбцов, которые я не хочу включать, это «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-файл, так долго пишется имя каждого столбца (Particle ID, Area (ABD) , Соотношение сторон ... и т. Д.). Есть ли быстрый способ сказать «просто возьмите первые 52 столбца из существующего фрейма данных и поместите их в новый CSV-файл?

Большое спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Есть два способа, которые я могу придумать, в зависимости от того, что важнее - возможность написать несколько столбцов, которые вы хотите выбрать, или полностью отменить выбор «последних 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]]

тогда вы бросаете только последние три. Я, конечно, рекомендую проверить, поддерживается ли заказ ... когда я попробовал, он работал, но первый более надежный, я думаю

0 голосов
/ 09 мая 2018
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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...