我有一个相当大的Excel文件(5000行),其中包含一些公司信息。许多公司被添加了多次,但是它们都缺少一些列。我的目标是合并所有重复的公司,而不会丢失其他任何列中的信息。
示例:
我的搜索结果仅显示了如何合并两个不同的数据框,以及在不存在重叠风险的情况下如何合并单元格。
(https://www.datacamp.com/community/tutorials/joining-dataframes-pandas)
最接近的答案可能在this one中。
但是,确实会将不同的值合并到单个单元格中,而不是将它们拆分成多个不同的单元格。
答案 0 :(得分:1)
您可以将groupby()与agg选项一起使用,以指定要对每列进行的操作。这可能是这样的:
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]