[英]How to change an operation to other column when value is equal to nan in a dataframe?
我有一个包含三列“dayO”、“dayN”和“dayF”的数据框,我想创建另一个名为“days”的列,只有当 dayN 不等于 nan 时,它才会用 dayO 减去 dayN 的值,否则应该从 dayF 中减去该值。
我尝试过像这样使用 apply 和 lambda :
df['days']=df.apply(lambda x: x['dayN']-x['dayO'] if x['dayN'].notnull() else x['dayF']-x['dayO'])
但它会导致此错误: raise KeyError(key) from err KeyError: 'dayN'
运行时使用fillna
将dayN的NaN替换为dayF:
df['days'] = df['dayN'].fillna(df['dayF'])-df['dayO']
dataOpen['days']=np.where(dataOpen.dayN.notnull(),dataOpen['dayN']-dataOpen['dayO'],dataOpen['dayF']-dataOpen['dayO'])
这似乎有效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.