gpt4 book ai didi

python - Pandas 在更新列时在切片错误的副本上设置值

转载 作者:行者123 更新时间:2023-12-01 02:06:58 24 4
gpt4 key购买 nike

我有一个 3 列 pandas 数据框,即:col1、col2、col3
我想将 col1 的数据帧更新为等于 col,其中 col 3 = 0
下面的代码使更新成功,但它抛出一个关于在切片副本上设置值

的警告
df.col1.loc[df.col3==0] = df.col2.loc[df.col3==0]

有什么方法可以修复代码以消除警告吗?

最佳答案

使用DataFrame.loc相反 Series.loc :

#cache to variable
mask = df.col3 == 0
df.loc[mask, 'col1'] = df.loc[mask, 'col2']

还有另一种可能的方法 - masknumpy.where :

df['col1'] = df['col1'].mask(mask, df['col2'])

df['col1'] = np.where(mask, df['col2'], df['col1'])

关于python - Pandas 在更新列时在切片错误的副本上设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960544/

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