python - 使用 pandas 组合工作表,遍历特定列,将行添加到新列表
问题描述
我有一个包含多个工作表的 Excel 工作簿,这些工作表都具有相同的列标题。我想遍历每个工作表中的一列并将行添加到新列表(或列)中。
背景:每个工作表代表一个不同的农民社区,每个工作表的每一列都是一个人口统计数据。我已经为每个农民分配了一个代码,我想将所有这些代码放在一个列表中。我知道我可以在 excel 中手动完成,但我正在尝试使用 pandas、python
import pandas as pd
import numpy as np
sheets_pt = pd.read_excel(r"C:\Users\RRF\Desktop\pruning.xlsx",sheetname=None)
sheets_pt_read = pd.ExcelFile(r"C:\Users\RRF\Desktop\pruning.xlsx")
sheetnames_read = sheets_pt_read.sheet_names
codelist = []
for village in sheetnames_read:
for code in sheets_pt[village]["Farmer Code"]:
codelist.append(code)
运行代码后。我打印了代码表和前 5 张纸中的农民代码。然后出现以下错误消息...
这是我收到的错误消息:
KeyError Traceback (最近一次调用最后) ~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance . . . KeyError: 'Farmer Code'
如果有人感兴趣,将非常乐意分享整个错误消息。
解决方案
import pandas as pd
import numpy as np
# read excel file into notebook assign to pro2019
pro2019 = pd.read_excel(path_to_file, sheet_name=None)
# concatenate all of the worksheets within the file removing the index
# from individual sheets
df = pd.concat(pro2019, ignore_index=True)
# create empty list to store farmer codes
pro_codelist = []
# iterate through the df column titled "FARMER CODE"
# append each code to pro_codelist
for code in df["FARMER CODE"]:
pro_codelist.append(code)
推荐阅读
- discord.py - 你如何在 Discord.py 中接收斜线命令?
- r - 3D 条形图,其中条形的深度可视化 R 中的变量
- java - 在 spring-boot 项目之间共享模型和存储库
- javascript - 导航项目链接未正确链接到新页面
- javascript - 如何获取 Keyv 的用户名和密码?
- python - 如何按特定顺序对我的条形值进行排序?
- node.js - 使用 Node、Express、EJS:如何提供 PDF 文件
- visual-studio-code - VSCode 下划线隐藏波浪线
- sockets - Golang 写入套接字而不用担心数据不完整
- java - java.lang.IllegalAccessError 与 SpringSecurityCoreGrailsPlugin.createBeanList 与 spring security4.0.0、grails 4.0.2 和 java 1.8