2016-11-30 76 views
0

假設我有以下的數據幀稱爲mapping_df如何用另一列中的修改值替換一列中的空值?

mapping | store_id 
--------|--------- 
    a | 1 
    b | 2 
     | 3 
    c | 4 
     | 5 

我想修改它,這樣我就可以有

mapping | store_id 
--------|--------- 
    a | 1 
    b | 2 
edit-3 | 3 
    c | 4 
edit-5 | 5 

我有下面的代碼,但我不知道它用熊貓來充分發揮其潛力

for idx, value in mapping_df["mapping"].iteritems(): 
    if not value: 
     mapping_df["mapping"].iloc[idx] = "edit-{}".format(mapping_df["store_id"].iloc[idx]) 

回答

1

試試這個傢伙:

df['mapping'] = df[['mapping', 'store_id']].apply(lambda x: x[0] if x[0] else 'edit-%d' % x[1], axis=1) 
0

如果在映射列中的空白條目NaN而不僅僅是空字符串時,你可以使用combine_first()方法:

df.mapping = df.mapping.combine_first('edit-' + df.store_id.astype(str)) 
+0

是啊,可惜的是他們是空字符串:( – lollerskates

相關問題