【发布时间】:2021-12-25 05:04:13
【问题描述】:
我在一个文件夹中有两千多个 csv 文件,如下所示:
University_2010_USA.csv, University_2011_USA.csv, Education_2012_USA.csv, Education_2012_Mexico.csv, Education_2012_Argentina.csv,
和
Results_2010_USA.csv, Results_2011_USA.csv, Results_2012_USA.csv, Results_2012_Mexico.csv, Results_2012_Argentina.csv,
我想根据文件名中的“年份”(2012 等)和“国家”(墨西哥等)将列表中的第一个 csv 文件与第二个匹配。有没有办法这么快?两个 csv 文件具有相同的列名,我正在查看以下代码:
df0 = pd.read_csv('University_2010_USA.csv')
df1 = pd.read_csv('Results_2010_USA.csv')
new_df = pd.merge(df0, df1, on=['year','country','region','sociodemographics'])
所以基本上,我需要帮助来编写一个遍历数据集的 for 循环...谢谢!
【问题讨论】:
-
mabye 使用
University获取所有名称并将单词University替换为Results,您将获得匹配的文件名。或用*替换第一个单词以运行glob.glob("*_2012_USA.csv")之类的行以匹配具有相同年份和国家/地区的所有文件。 -
为什么
Education_2012_Mexico.csv出现在两个列表中?是否有规则将哪个文件转到哪个数据帧(df0 或 df1)?
标签: python pandas for-loop dataset