![](/img/trans.png)
[英]how to replace the values of a column from another column with condition pandas python
[英]Pandas: replace values in column with condition
我有數據框
city_reg city_live reg_region live_region
Moscow Tver 77 69
Tambov Tumen' 86 86
我需要替換值city_reg
從到值city_live
如果reg_region == live_region
我嘗試使用
df.loc[df.reg_region == df.live_region, 'city_reg'] = df['city_live']
但它返回
ValueError: cannot reindex from a duplicate axis
我該如何解決?
使用mask
或numpy.where
可以很好地處理重復索引:
#create duplicated indices for test
df.index = [0,0]
print (df)
city_reg city_live reg_region live_region
0 Moscow Tver 77 69
0 Tambov Tumen' 86 86
df['city_reg'] = df['city_reg'].mask(df.reg_region == df.live_region, df['city_live'])
要么:
df['city_reg'] = np.where(df.reg_region == df.live_region, df['city_reg'], df['city_live'])
print (df)
city_reg city_live reg_region live_region
0 Moscow Tver 77 69
0 Tumen' Tumen' 86 86
嘗試這個:
mask = df.reg_region == df.live_region
df.loc[mask, 'city_reg'] = df.loc[mask, 'city_live']
# city_reg city_live reg_region live_region
# 0 Moscow Tver 77 69
# 1 Tumen' Tumen' 86 86
之所以起作用,是因為當您應用相同的蒙版時,索引在分配的左側和右側之間對齊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.