python - 在循环中为每个数据帧创建列时附加数据帧
问题描述
我在一个目录中有 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 |
我仍然不确定问题是什么。提前致谢。
解决方案
如果我正确理解您的问题的含义,此代码可以帮助您:
#if thinks this is your list of dataframes
dfs = [df1, df2, df3]
df = pd.concat(dfs)
推荐阅读
- android-studio - 将 android studio 更新到 4.0 后,Ionic Capacitor Gradle 构建失败
- ios - 如何使用 AVFoundation 获取 iPhone 相机的焦距
- caching - Google Datastudio 中的数据新鲜度指的是什么?
- javascript - Javascript 上的空 .HTML()
- c# - C#接口和继承的问题
- python - 使用 Series.str.match() 过滤 DataFrame
- amazon-web-services - 如何将 route53 Apex 域注册表指向 CloudFront 分配?
- ios - 如何在 iOS 视图控制器中的图像和标签之间添加垂直空间
- php - 按 WooCommerce 管理订单列表中的特定元字段过滤订单
- c# - 单击 DataGridView 背景时的单击事件(在任何单元格之外)C#