问题描述
我有一个数据框 df1,第 1 列 (col1) 包含客户 ID。 Col2 填满了销售额,部分值缺失
我的问题是我只想删除 col1 中缺少销售价值的重复客户 ID。
def drop(i):
if i[col2] == np.nan:
i.drop_duplicates(subset = 'col1')
else:
return i['col1']
感谢您的阅读。希望得到解决方案
解决方法
以下应该有效,使用 groupby、apply、dropna、reset_index
假设你的数据是这样的
输入:
col1 col2
0 1001 2.0
1 1001 NaN
2 1002 4.0
3 1002 NaN
代码:
import pandas as pd
import numpy as np
#Dummy data
data = {
'col1':[1001,1001,1002,1002],'col2':[2,np.nan,4,np.nan],}
df = pd.DataFrame(data)
#Solution
df.groupby('col1').apply(lambda group: group.dropna(subset=['col2'])).reset_index(drop=True)
输出:
col1 col2
0 1001 2.0
1 1002 4.0