【问题标题】:Merge data from several excel sheets into one [duplicate]将多个excel表中的数据合并为一张[重复]
【发布时间】:2021-02-08 06:31:38
【问题描述】:

我需要将城市地址放在一起并查找所有重复项。我已经到了可以在excel文件中找到所有重复项的地步,到目前为止很容易。但是我必须更改代码中的每个城市才能搜索每个文件。我如何搜索每个文件而不必更改代码中的城市然后当然保存它。我想合并它们,但我不知道为什么它们会创建自己的 3 列,而不仅仅是与已经存在的“A”、“B”和“C”列合并。也许 Pandas 不是最好的库,可以推荐一个更好的库。

import os

file_df = pd.read_excel("Kermit.xlsx")

file_df.duplicated(subset = 'Address', keep = False)

file_df.drop_duplicates(subset= 'Address',inplace= True)

City = file_df.to_excel("Kermit2.xlsx", index= False)

# path = os.getcwd()
# files = os.listdir(path)
# print(files)

# files_xlsx = [f for f in files if f[-4:] == 'xlsx']

# print(files_xlsx)

# df = pd.DataFrame()

# for f in files_xlsx:
#    data = pd.read_excel(f, 'Sheet1')
#    df = df.append(data)`import os

【问题讨论】:

  • 您是否意识到变量City 只能具有None 的值,因为to_excel() 不返回任何内容?为什么要关心覆盖它?只需在 for 循环中运行即可。
  • 您能否更详细地解释您的意思:“他们创建了自己的 3 列,而不只是与已有的 'A'、'B' 和 'C' 列合并。”
  • 文件有三列,名称、地址和电话。当我将两个或多个合并到一个新文件时,来自第二个城市的“A”、“B”和“C”列将创建一个“D”、“E”和“F”列,依此类推对于我拥有的所有 12 个左右的城市。相反,我想要的是将所有内容都放在相同的三列下,因为它当然都是相同的数据类型。
  • 相反,我想要的是将所有内容都放在相同的三列下,因为它们当然都是相同的数据类型。看看pandas.pydata.org/pandas-docs/stable/user_guide/merging.html
  • 谢谢!他们都回答了我的问题。

标签: python excel pandas


【解决方案1】:

如果不知道您的数据是什么样的以及您的文件命名是什么,就很难正确回答您的问题。我假设您所有的 excel 文件都在同一个文件夹中,并且它们具有相同的 3 列数据。

在这种情况下,您需要做的就是:

import os
import pandas as pd

source_folder = 'your_folder_location'
files = [os.path.join(source_folder, x) for x in os.listdir(source_folder) if x.endswith('xlsx')]

data = pd.append(pd.read_excel(x) for x in files)
data.drop_duplicates(subset=['Address'], inplace=True)
data.to_excel('blablabla.xlsx', index=False) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 2019-11-15
    • 2018-09-11
    • 2021-10-13
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 2016-09-08
    相关资源
    最近更新 更多