我想查找超过500个csv文件中的列列表。只读列和&放入数据框或列表,稍后我想导出到csv。
答案 0 :(得分:2)
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)))
这也会将文件名作为每行的第一个条目。