Я хочу найти список столбцов, присутствующих в более чем 500 CSV-файлах. Только для чтения столбцы и поместить в кадр данных или список, а позже я хочу экспортировать в csv.
Выберите только имя столбца из CSV-файлов без чтения всех данных, Python 3.6
Ответы (1)
pandas
может легко извлечь только определенные столбцы и записать для вас новый CSV-файл:
import pandas as pd
data = pd.read_csv('input.csv', usecols=[1, 3], index_col=1)
data.to_csv('output.csv')
Если вы хотите извлечь одни и те же два столбца из нескольких файлов в один вывод, вы можете сделать следующее:
import pandas as pd
import glob
combined_data = pd.DataFrame()
for csv_file in glob.glob('*.csv'):
data = pd.read_csv(csv_file, usecols=[1, 3], index_col=1, skiprows=1, header=None, names=['Col1', 'Col2'])
combined_data = combined_data.append(data)
combined_data.to_csv('output.csv')
Это может потребовать настройки в зависимости от того, имеют ли ваши файлы заголовки и одинаковые имена столбцов.
Чтобы извлечь заголовки из всех файлов (без загрузки всего файла), вы можете просто использовать библиотеку CSV следующим образом:
import csv
import glob
with open('headers.csv', 'w', newline='') as f_headers:
csv_headers = csv.writer(f_headers)
for csv_file in glob.glob('input*.csv'):
with open(csv_file, 'r', newline='') as f_csv:
csv_headers.writerow([csv_file] + next(csv.reader(f_csv)))
Это также поставит имя файла в качестве первой записи в каждой строке.
person
Martin Evans
schedule
23.09.2017
спасибо, но я хотел имя столбца, это также помогает для моих других требований.
- person Learnings; 23.09.2017
Таким образом, вы пытаетесь создать файл CSV, содержащий все строки заголовков из ваших 500 файлов?
- person Martin Evans; 23.09.2017
Я просто хочу знать столбцы, присутствующие во всех 500 CSV-файлах.
- person Learnings; 23.09.2017
Я добавил простую программу чтения CSV, которая должна помочь. Он добавляет имя файла в качестве первой записи в каждой строке.
- person Martin Evans; 23.09.2017
спасибо это я хотел
- person Learnings; 23.09.2017