我有一个这样的数据框架:
pd.DataFrame([
[1, None, 'a'],
[1, 3.3, None],
[2, 1.7, 'c']
], columns=['unique_id', 'x', 'target'])我想删除其中一行unique_id为1的行,但取它们的值的并集。也就是说,我想生成以下代码:
pd.DataFrame([
[1, 3.3, 'a'],
[2, 1.7, 'c']
], columns=['unique_id', 'x', 'target'])在Pandas中可以有效地做到这一点吗?
假设这个数据帧有10k到100k行,其中可能有10%是我想要消除的重复项。每个unique_id只有2到3个副本。
编辑:当两行都有不一致的条目时,在我的例子中,只取第一个就可以了。但我对解决方案持开放态度,例如,两个值都收集在一个列表中。
发布于 2018-08-11 05:23:13
这给出了您的示例的结果。它获取每组中每列的第一个非NAN值。
df.groupby("unique_id", as_index=False).first()发布于 2018-08-11 05:23:37
使用groupby和first
df.groupby('unique_id').first()https://stackoverflow.com/questions/51794147
复制相似问题