如何解决从数据框中的列中条件值> 0的所有列中删除重复项
我需要从所有列中删除重复项。
我的数据:
id country publisher weak A B C
123 US X 1 6.77 0 0
123 US X 1 0 1.23 88.7
456 BZ Y 2 0 56.87 9.65
456 BZ Y 2 2.76 0 0
456 BZ Y 2 0 0 0
我使用了drop_duplicates-
df1=df.drop_duplicates()
但是我需要一个条件,该条件将使每个id的所有值均> 0。
此外,除了“ A”,“ B”,“ C”之外,我还有更多的列,因此我正在寻找一种解决方案,该考虑因素将所有列都考虑在内。
以下是我要查找的示例:
id country publisher weak A B C
123 US X 1 6.77 1.23 88.7
456 BZ Y 2 2.76 56.87 9.65
解决方法
这将为您提供所需的输出groups=df.groupby(['id','country','publisher']).sum()
尝试做:
cols = ['A','B'] # change columns to aggregate more data
def app_func(s):
return s[~s.eq(0)].bfill().dropna().drop_duplicates()
df.groupby(['id','publisher'])[cols].apply(app_func).reset_index()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。