我使用熊猫库
我有数百个数据部分重复(一个或两列是相同的,但两个中的一个保持附加信息)的一个大的数据库。我想同时保留一行最多的信息合并重复的实例。我只能找出如何奇异数据库中合并两个数据库,而不是数据。
例:
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
我需要确定西1的重复(在这个例子中亚伦守财奴),然后合并重复的情况下,使合并后的行现在拥有可供复制实例的大多数数据。所以只有1所保有行,现在显示所有可用的信息:
亚伦守财奴,32,管道工,4名儿童,喜欢足球
这应该这样做:
df.groupby('Name').apply(lambda series: series.fillna(method='ffill').fillna(method='bfill'))
如果你想删除重复和重置索引,之后添加.drop_duplicates().reset_index(drop=True)
。
注意:此假设Name
列提供一个唯一的密钥,并且有相互矛盾的信息没有行。