【发布时间】:2019-12-31 12:29:32
【问题描述】:
我有一个包含多个工作表的 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:'农民代码'
如果有人感兴趣,我们非常乐意分享整个错误消息。
【问题讨论】:
-
pd.read_excel()已经创建了一个DataFrame,你不需要再次包装它。 -
此外,如果我调用 sheet_pt["Agosa"]["Farmer Code"] 则将调用“Agosa”表的农民代码。有没有办法列出工作表名称,然后遍历该列表?
-
当你有一个新的/不同的问题而不是多次编辑同一个问题时,创建一个新的 StackOverflow 问题会更有帮助——即使最终目标是相同的。因此,遇到相同问题的人可以找到问题+答案,而不是对不再存在的问题的随机答案。
-
那你有什么推荐的?你认为我应该结束这个问题吗?
-
不,这很好。当问题发生变化时,只需打开一个新的。你见过these examples for excel worksheets in pandas吗?也许这些可以提供帮助。
标签: python excel pandas jupyter-notebook