【问题标题】:Can you use pandas/python to concatenate a folder of .xlsx files based on row 2?您可以使用 pandas/python 根据第 2 行连接一个包含 .xlsx 文件的文件夹吗?
【发布时间】:2018-03-09 13:28:25
【问题描述】:

我在使用 pandas 连接一个非常大的 .xlsx 文件文件夹时遇到问题。问题是我们在每个文档的第一行中都有一些无法删除的文本。

我的文件夹路径已设置并且连接有效。问题出在第一个文件之后,它在连接其余文件时删除了前 2 列中的 ID #。因此,不仅每一列的数据不匹配,而且我也丢失了我的唯一标识符。我最好的猜测是这是由于每个文档中的第一行文本。

这是我目前所拥有的。

files = [f for f in os.listdir(path) if f.endswith('.xlsx')]

iep_boy_df = pd.concat([pd.read_excel(os.path.join(path, f), sheetname='Academic Outlier List', encoding='utf-8') for f in files],
               keys=files, names=['File Name', 'Row']).reset_index()

我已经看到了一些使用 Python 解析文件的方法,但是您可以解析 50 多个 excel 文档以跳过第 1 行,然后将它们传递给 pandas 以连接到 DF 中吗?总而言之,我希望在连接时排除第 1 行。

这里仍然是 Python 的中间人,因此非常感谢任何帮助!

【问题讨论】:

  • 你试过pd.read_excel(skiprows=[0])

标签: python excel python-2.7 pandas


【解决方案1】:

我不确定这是否会完全解决您的导入问题,但 Pandas read_excel() 有一个 skipped_rows 参数,您可以通过该参数跳过第一行。请注意,它的类型是零索引列表。

参考:http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_excel.html

【讨论】:

  • 对你投了赞成票,但我是新手,所以它说它不算数。那效果很好!我一直在查看 Pandas 文档以进行连接,但无法弄清楚。唯一奇怪的是它把几列移到了最后,但我认为这可能是因为有些人用 ID 号隐藏了这些列。无论哪种方式,这对我来说都很容易解决。谢谢!!
  • 没问题。很高兴为您提供帮助。
【解决方案2】:

我会回应 piRSQUARED 的回答。 pd.read_excel 有skiprows,但请记住将skip rows 作为迭代传递。

【讨论】:

  • 效果很好!感谢您的帮助,确实需要确保 skiprows=1 位于正确的位置。
猜你喜欢
  • 2021-11-15
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多