熊猫:drop_duplicates条件

时间:2013-11-19 09:06:17

标签: python pandas duplicates

有没有办法将drop_duplicates与条件一起使用?例如,让我们采用以下Dataframe:

import pandas as pd
df = pd.DataFrame({
'Customer_Name': ['Carl', 'Carl', 'Mark', 'Joe', 'Joe'],
'Customer_Id': [1000,None,None,None,50000]
})

根据此数据框架,我想推导出一个包含Customer_IdCustomer_Name

不同行的数据框
    Customer_Id Customer_Name
0    1000        Carl
2    NaN         Mark
5    50000       Joe

不幸的是,我不能使用drop_duplicates方法,因为此方法总是会删除第一个或最后一个重复的事件。

然而,在我的情况下,这有所不同(见卡尔和乔)。此外,我不能只删除Customer_Id列中没有条目的所有行,因为这也会删除Mark的条目。

我非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这个正在研究你的例子:

>>> df.groupby('Customer_Name').first().reset_index()
  Customer_Name  Customer_Id
0          Carl         1000
1           Joe        50000
2          Mark          NaN

但是我必须检查first()如何处理缺失值以确保它始终如一地工作。

答案 1 :(得分:0)

如果不可用,这将只为您提供编号最高的Customer_IdNaN

df.groupby('Customer_Name').Customer_Id.max().reset_index()

  Customer_Name  Customer_Id
0          Carl         1000
1           Joe        50000
2          Mark          NaN