首页 > 解决方案 > 在循环中为每个数据帧创建列时附加数据帧

问题描述

我在一个目录中有 6 个州从 2012 年到 2016 年(总共 30 个文件)扩展名为 xls 的人口普查文件列表。我想创建一个附加所有文件的数据框,但是,每个文件都缺少一年列。所以我需要在追加时创建。这是我的代码:

filesnames = os.listdir("/Census_Data")
dfs = list()
for filename in filesnames:
    for year in range(2012,2017):
         if filename.startswith("year"):
                 df = pd.read_excel(filename,sheet_name="Additional Measure Data",usecols={'Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Demographics'})
                 df['year'] = year
         dfs.append(df)

代码返回下表写了 30 多次。

未命名:0 未命名:1 未命名:2 人口统计
0 FIPS 状态 人口 2016
1 12000 佛罗里达 19317568 2016
2 12001 佛罗里达 阿拉楚阿 251417 2016
3 12003 佛罗里达 贝克 27086 2016
4 12005 佛罗里达 171903 2016
5 12007 佛罗里达 布拉德福德 27049 2016

我仍然不确定问题是什么。提前致谢。

标签: pythonpython-3.xpandas

解决方案


如果我正确理解您的问题的含义,此代码可以帮助您:

#if thinks this is your list of dataframes
dfs = [df1, df2, df3]

df = pd.concat(dfs)

推荐阅读