【问题标题】:Using pandas combine worksheets, iterate through a specific column, add rows to a new list使用 pandas 组合工作表,遍历特定列,将行添加到新列表
【发布时间】:2019-12-31 12:29:32
【问题描述】:

我有一个包含多个工作表的 Excel 工作簿,这些工作表都具有相同的列标题。我想遍历每个工作表中的一列并将行添加到新列表(或列)中。

背景:每个工作表代表一个不同的农民社区,每个工作表的每一列都是一段人口统计数据。我已经为每个农民分配了一个代码,我想将所有这些代码放在一个列表中。我知道我可以在 excel 中手动完成,但我正在尝试使用 pandas、python

pruning.xlsx 文件中的一个工作表示例如下所示:


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


【解决方案1】:
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)

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    相关资源
    最近更新 更多