微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除存在空值的列的重复项

如何解决删除存在空值的列的重复项

我有一个数据框 df1,第 1 列 (col1) 包含客户 ID。 Col2 填满了销售额,部分值缺失

我的问题是我只想删除 col1 中缺少销售价值的重复客户 ID。

我试着写一个函数说:

def drop(i):
          if i[col2] == np.nan:
             i.drop_duplicates(subset = 'col1')
          else:
             return i['col1']

我收到一个错误,说系列的真值不明确

感谢您的阅读。希望得到解决方

解决方法

以下应该有效,使用 groupbyapplydropnareset_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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。