我有数据框
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
关于python - Pandas :用条件替换列中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48869292/