使用键创建字典,因为文件名的值是内容

时间:2019-02-26 09:20:04

标签: python pandas dictionary key-value

我有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)

2 个答案:

答案 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)