我有4个文件,我从csv文件的名称创建了列表:
file_names['file1', 'file2', 'file3', 'file4']
在每个文件中,我都有6-7列以上。我可以使用以下代码获取列名:
for x in file_names:
df = pd.read_csv(path + x)
print(list(df.columns))
它工作正常,但是如何创建(不是手动)带有for循环的字典,其中的键是file_names
,而值是list(df.columns)
?
答案 0 :(得分:3)
使用字典理解,nrows=0
对于只读标头具有更好的性能:
d = {x: pd.read_csv(path + x, nrows=0).columns.tolist() for x in file_names}
或用readline
循环读取标题:
d = {}
for x in file_names:
with open(x) as f:
d[x] = f.readline()
答案 1 :(得分:2)
首先创建一个空字典,然后简单地将字典键值作为文件名,并将list(df.columns)作为其值,这将在字典中创建新条目:
file_names = ['file1', 'file2', 'file3', 'file4']
file_data = {}
for x in file_names:
df = pd.read_csv(path + x)
file_data[x] = list(df.columns)