Skip to main content
 首页 » 编程设计

python之Pandas :drop_duplicates 有条件

2025年05月04日14Leo_wl

有什么方法可以将 drop_duplicates 与条件一起使用吗?例如,让我们采用以下数据框:

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

基于此 Dataframe,我想为 Customer_Id 和 Customer_Name 派生一个具有不同行的 Dataframe

    Customer_Id Customer_Name 
0    1000        Carl 
2    NaN         Mark 
5    50000       Joe 

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

但是,在我的情况下,情况有所不同(请参阅 Carl 和 Joe)。此外,我不能只删除 Customer_Id 列中没有条目的所有行,因为这也会删除 Mark 的条目。

我非常感谢任何帮助。

请您参考如下方法:

这个正在处理您的示例:

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

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