我有一个在python中使用pandas的数据集,并希望为特定列应用if-then-else规则。
如果缺少值,则将其替换为从同一观察中的另一列中获取的特定值,否则不执行任何操作。
我的数据集由代码生成,如下所示:
results = df2.merge(df1,on="sku", how="left")
需要填充的列变量(如果为空(为"stock_y"。 如果为空,则应将列变量"stock_x"的值复制到"stock_y"。如果stock_y已填充,则代码应跳过观察。
查看Series.combine_first
:
results['stock_y'] = results['stock_y'].combine_first(results['stock_x'])
用fillna
实现:
results['stock_y'] = results['stock_y'].fillna(results['stock_x'])