熊猫read_excel,csv;名称列名映射器?

时间:2017-04-24 01:05:34

标签: python excel pandas

假设您有一堆带有ID和公司名称的excel文件。您在目录中有N个excel文件,并将它们全部读入数据帧,但是,在每个文件中,公司名称的拼写略有不同,最终会得到一个N + 1列的数据框。

有没有办法为列名创建映射,例如:

col_mappings = {
    'company_name': ['name1', 'name2', ... , 'nameN],
}

那么当您运行read_excel时,您可以将公司名称的所有不同可能性映射到一列?你也可以用任何类型的数据文件吗?例如。 read_csv等..

1 个答案:

答案 0 :(得分:0)

您是否在逐个阅读文件之后连接这些文件?如果是,您只需在读取文件后更改列名即可。从您的问题来看,我假设您的数据框只包含两列--Id和CompanyName。因此,您只需通过索引进行更改即可。

df = pd.read_csv(one_file)
df.rename(columns={df.columns[1]:'company_name'})

然后将其连接到原始数据帧。

否则,只需阅读给定的列名,

df = pd.read_csv(one_file, names=['Id','company_name'])

然后从df中删除第一行,因为它包含原始列名。

可以在.csv和.xlsx文件上执行。