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

迭代数据框的两列并根据另一列的条件替换空值

如何解决迭代数据框的两列并根据另一列的条件替换空值

我需要迭代数据帧中的 2 列('bounces' 和 'transactions')并根据条件替换 'bounes' 中的空值: 如果bounces.null() 和transactions>1 然后用0 替换bounces 中的空值 否则如果bounces.null()和transactions=0然后用1替换bounces中的空值

此外,这两列都有浮点值。所以我尝试了这个:

df['bounces'].fillna(2,inplace=True)
df['bounces']=df['bounces'].astype(int)
df['transactions']=df['transactions'].astype(int)
bounces = df["bounces"].tolist()
transactions = df["transactions"].tolist()
for (a,b) in zip(transactions,bounces): 
    if a>0 and b==2:
        bounces[b]=0
    elif a==0 and b==2:
        bounces[b]=1
df['bounces']=bounces

但这不起作用 请帮忙。提前谢谢你!

解决方法

我建议使用面罩技术 here 进行深潜。 面膜是解决这类问题最快的方法。

# case 1  
mask1 = pd.isnull(df['bounces']) & df["transactions"]>1
# mask application
df['bounces'][mask1] = 0

# case2
mask1 = pd.isnull(df['bounces']) & df["transactions"]==1
# mask application
df['bounces'][mask1] = 1

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