[英]Searching for specific headers in csv file
我想在python中读取一个csv文件并获取所有标头,然后搜索不同的csv文件以检查它们是否具有第一个csv文件没有的其他标头。
我目前有一个合并csv文件的程序,但是我需要处理其中一个文件是否具有额外(或多个额外)标头的问题。
import glob, os
import pandas as pd
file_list = glob.glob("*.csv")
pd_list = []
for file in file_list:
pd_list.append(pd.read_csv(file))
combined = pd.concat(pd_list)
final = combined.drop_duplicates()
if not os.path.exists('output'):
os.makedirs('output')
final.to_csv("output/final.csv", index=False)
如果用“标题”来表示字符串列表,那么我相信您可以使用集合:
A = set(['red', 'blue', 'green', 'white'])
B = set(['red', 'blue', 'green', 'white', 'purple'])
if A.issubset(B):
if B.difference(A):
print('B has extra headers')
else:
print('B does not have extra headers')
else:
print('B is missing headers')
“ B有多余的标题”
pandas
可以用更少的代码完成同样的事情: CustomerID,Gender,Day,SaleAmount
18,Male,Monday,71.55
24,Female,Monday,219.66
112,Male,Friday,150.44
CustomerID,Gender,Day,SaleAmount
18,Male,Monday,71.55
24,Female,Monday,219.66
112,Male,Friday,150.44
CustomerID,Gender,SaleAmount,Day,random,Day
18,Male,71.55,Monday,test1,Monday
24,Female,219.66,Monday,test2,Wednesday
112,Male,150.44,Friday,test3,Friday
pathlib
而不是os
& glob
: os
。 from pathlib import Path
p = Path.cwd() / 'csv_files'
f = p.rglob('*.csv')
df = pd.concat([pd.read_csv(x) for x in f], sort=False)
df.reset_index(inplace=True, drop=True)
df.to_csv('test.csv', index=False)
NaN
填充 Day
是Day.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.