有没有办法将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_Id
和Customer_Name
Customer_Id Customer_Name
0 1000 Carl
2 NaN Mark
5 50000 Joe
不幸的是,我不能使用drop_duplicates
方法,因为此方法总是会删除第一个或最后一个重复的事件。
然而,在我的情况下,这有所不同(见卡尔和乔)。此外,我不能只删除Customer_Id列中没有条目的所有行,因为这也会删除Mark的条目。
我非常感谢任何帮助。
答案 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_Id
或NaN
df.groupby('Customer_Name').Customer_Id.max().reset_index()
Customer_Name Customer_Id
0 Carl 1000
1 Joe 50000
2 Mark NaN