gpt4 book ai didi

python - Pandas :用条件替换列中的值

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:29 25 4
gpt4 key购买 nike

我有数据框

city_reg     city_live   reg_region    live_region 
Moscow Tver 77 69
Tambov Tumen' 86 86

如果 reg_region == live_region,我需要将 city_reg 中的值替换为 city_live 中的值

我尝试使用

df.loc[df.reg_region == df.live_region, 'city_reg'] = df['city_live']

但它返回

ValueError: cannot reindex from a duplicate axis

我该如何解决?

最佳答案

使用masknumpy.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com