【问题标题】:Merging/combining duplicates in single column without losing data in other columns合并/组合单列中的重复项而不会丢失其他列中的数据
【发布时间】:2019-06-27 21:28:09
【问题描述】:

我有一个相当大的 Excel 文件(5000 行),其中包含一些公司信息。许多公司已被多次添加,但它们都缺少一些列。我的目标是合并所有重复的公司,而不会丢失其他列中的任何信息。

例子:

我的搜索结果只显示了如何组合两个不同的数据框以及在没有重叠风险的情况下如何合并单元格。

(https://www.datacamp.com/community/tutorials/joining-dataframes-pandas)

可能最接近的答案在this one

不过,它确实会将不同的值合并到单个单元格中,而不是将它们拆分为多个不同的单元格。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用带有 agg 选项的 groupby() 来指定要对每一列执行的操作。这是它的样子:

    df = pd.DataFrame({'Company' : ['Apple', 'Google', 'Apple', 'Microsoft'],
                       'Score' : [7, np.nan, 6, 8], 
                       'Employees' : [8888, 55000, np.nan, np.nan],
                       'Description': ['Tasty', np.nan, "Likes trees", "Doesn't like apples"]})
    
    df.groupby('Company').agg({'Score':  max, 'Employees': max, 'Description':list})
    

    输出:

               Score  Employees            Description
    Company                                           
    Apple        7.0     8888.0   [Tasty, Likes trees]
    Google       NaN    55000.0                  [nan]
    Microsoft    8.0        NaN  [Doesn't like apples]
    

    【讨论】:

    • 感谢您花时间回复(甚至复制图片中的条款:p)。但是,该输出不是我想要实现的。我想为第二个 Apple 行的描述增加一列(“喜欢树”。),这样就不会丢失任何信息。
    • 您可以将'Description' : 'first' 更改为Description' : list 以将所有描述保留在列表中。如果您想查看结果,我编辑了我的答案
    猜你喜欢
    • 2017-06-18
    • 2018-05-06
    • 1970-01-01
    • 2021-11-28
    • 2017-01-19
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多