gpt4 book ai didi

python-3.x - 为什么使用 .loc 引发 SettingWithCopyWarning?

转载 作者:行者123 更新时间:2023-12-05 05:50:42 25 4
gpt4 key购买 nike

我已经用 .loc 引发的 SettingWithCopyWarning 错误检查了关于 SO 的类似问题,但我仍然不明白为什么我在以下示例中出现错误。

它出现在第 3 行,我成功地使用 .copy() 使其消失,但我想了解为什么 .loc 在这里没有特别起作用。

即使它是 .loc,制作条件切片是否会创建 View ?

df = pd.DataFrame( data=[0,1,2,3,4,5], columns=['A'])
df.loc[:,'B'] = df.loc[:,'A'].values
dfa = df.loc[df.loc[:,'A'] < 4,:] # here .copy() removes the error
dfa.loc[:,'C'] = [3,2,1,0]

编辑:pandas 版本是 1.2.4

最佳答案

dfa = df.loc[df.loc[:,'A'] < 4,:]<br>

dfa 是 df 数据帧的一部分,仍然引用数据帧,一个 View 。
.copy 创建一个单独的副本,而不仅仅是第一个数据帧的 View 。

dfa.loc[:,'C'] = [3,2,1,0]

当它是 View 而不是副本时,您会收到警告:试图在 DataFrame 的切片副本上设置值。

.loc 正在定位您提供的条件,但如果您不将其设为数据框的副本,它仍然是您设置值的 View 。

关于python-3.x - 为什么使用 .loc 引发 SettingWithCopyWarning?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70489707/

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