我正在使用熊猫库
我有一个大型数据库,其中包含数百个数据部分重复项(一两列是相同的,但是两列中的一列包含附加信息)。 我想合并重复的实例,同时保留信息最多的行。我只能弄清楚如何合并两个数据库,而不是单个数据库中的数据。
示例:
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行,它现在显示所有可用信息:
32岁的Aaron Miser,水管工,4个孩子,喜欢足球
答案 0 :(得分:1)
这应该做到:
df.groupby('Name').apply(lambda series: series.fillna(method='ffill').fillna(method='bfill'))
如果要删除重复项并重置索引,请在其后添加.drop_duplicates().reset_index(drop=True)
。
注意:这是假设Name
列提供了唯一键,并且不存在信息冲突的行。