问题描述
我需要迭代数据帧中的 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