Pandas如何删除account不同但recharge_number重复的对应两行数据
Pandas 实现方案
完整可运行代码
import pandas as pd # 构造示例输入数据 data = {'account': [43,43,43,43,45,45], 'recharge_number': [17777, 17777, 17999, 17888, 17222, 17999] , 'year': [2021,2021,2021,2021,2020,2020], 'month': [2,3,5,6,2,9]} df = pd.DataFrame(data) # 核心处理逻辑(大数据量推荐,性能更优) mask = df.groupby('recharge_number')['account'].transform('nunique') == 1 df_result = df[mask] # 打印验证输出 print(df_result)
逻辑说明
- 以
recharge_number为维度分组,统计每个充值号码对应的唯一account数量 - 仅保留唯一账号数为1的充值号码对应的所有行
- 充值号码
17999对应两个不同账号,会被整体过滤,最终输出和预期结果完全一致
小数据集可选写法
如果处理的数据量较小,可以用可读性更高的filter写法:
df_result = df.groupby('recharge_number').filter(lambda x: x['account'].nunique() == 1)
内容的提问来源于stack exchange,提问作者asif abdullah
相关产品推荐
相关产品推荐

