首页 > 解决方案 > 合并单个数据框中的重复数据

问题描述

我正在使用熊猫库

我有一个包含数百个数据部分重复的大型数据库(一列或两列相同,但两列中的一列包含附加信息)。我想合并重复的实例,同时保留信息最多的行。我只能弄清楚如何合并两个数据库,而不是单个数据库中的数据。

例子:

Col 1: Name, Col 2: Age, Col 3: Other, Col 4: Other, Col 5: Other

Row1   Aaron Miser, 32, Plumber, 4 Children, NaN
Row2   Aaron Miser, 32, NaN, NaN, NaN        
Row3   Aaron Miser, 32, NaN, NaN, NaN, likes football  

我需要识别 Col 1 的重复项(在此示例中为 Aaron Miser),然后合并重复实例,以便合并的行现在具有可用于重复实例的最多数据。所以只有 1 个保留行,它现在显示所有可用信息:

Aaron Miser,32 岁,水管工,4 个孩子,喜欢足球

标签: pythonpandasjupyter-notebook

解决方案


这应该这样做:

df.groupby('Name').apply(lambda series: series.fillna(method='ffill').fillna(method='bfill'))

如果要删除重复项并重置索引,请在.drop_duplicates().reset_index(drop=True)之后添加。

注意:这假设该Name列提供了一个唯一键并且没有包含冲突信息的行。


推荐阅读