【问题标题】:Python: Merging files and removing duplicatesPython:合并文件和删除重复项
【发布时间】:2018-11-02 07:26:52
【问题描述】:

我有 3 个 excel 文件,每个文件有 4000 行和 5 列。我希望将 excel 文件合并到一个数据框中并删除重复的行。随后,我希望将结果发布为 excel 文件:

 import pandas as pd

 import numpy as np

 filenames = ['Sample_a.xlsx','Sample_b.xlsx','Sample_c.xlsx']

 dataframes = [pd.read_excel(f) for f in filenames]

 new_dataframe = df.dropduplicates(dataframes)

我哪里错了?

【问题讨论】:

  • 在这种情况下,变量dataframes 只是一个列表,它不是一个合并的数据框。我建议阅读 pandas docs 关于组合数据框。

标签: python pandas duplicates


【解决方案1】:

将 excel 文件转换为 dataframes 变量的列表后,您需要将其转换为数据框。我找到了解决方案,希望您能在这里看到答案。

`import pandas as pd
import numpy as np

filenames = ['csv/2009.xlsx', 'csv/2010.xlsx', 'csv/2011.xlsx']
olddf=pd.DataFrame()
for f in filenames:
    df=pd.read_excel(f)
    olddf=pd.concat([olddf,df]).drop_duplicates().reset_index(drop=True)`

【讨论】:

  • 很高兴您找到了解决方案。一般来说,将您的解决方案作为解决方案发布是一种很好的形式,这样人们就可以看到您的困难所在并从您的回答中学习。
  • 当然,我是 Stack Overflow 的新手。形成下一个答案,我会尝试这样做。谢谢你的建议。
【解决方案2】:

如果无法重现您的结果,很难判断(我们不知道您的文件中有什么),但您正试图从数据框列表中消除重复项。您不应该对数据框本身进行操作吗?

new_dataframes = [df.drop_duplicates(d) for d in dataframes]

【讨论】:

  • 假设我有相同行的文件:“A B C D”。我想从新数据框中删除相同的行并在新的 excel 文件中获取输出。
猜你喜欢
  • 2018-03-11
  • 2014-06-08
  • 2013-05-28
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 2012-06-13
相关资源
最近更新 更多