gpt4 book ai didi

python - Pandas :更改列中 bool 索引选择的值而不会收到警告

转载 作者:太空狗 更新时间:2023-10-30 00:34:40 25 4
gpt4 key购买 nike

我有一个数据框,我只想更改另一列满足特定条件的列的那些值。我现在正在尝试使用 iloc 执行此操作,但它要么不起作用,要么我收到了烦人的警告:

A value is trying to be set on a copy of a slice from a DataFrame

例子:

import pandas as pd
DF = pd.DataFrame({'A':[1,1,2,1,2,2,1,2,1],'B':['a','a','b','c','x','t','i','x','b']})

做其中之一

DF['B'].iloc[:][DF['A'] == 1] = 'X'

DF.iloc[:]['B'][DF['A'] == 1] = 'Y'

有效,但会导致上述警告。

这个也给出警告,但不起作用:

DF.iloc[:][DF['A'] == 1]['B'] = 'Z'

我真的很困惑如何使用 locilocix 进行 bool 索引,即如何提供行索引、列索引和 bool 索引以正确的顺序和正确的语法。

有人可以帮我解决这个问题吗?

最佳答案

您正在链接您的选择器,导致出现警告。将选择合并为一个。
使用 loc 代替

DF.loc[DF['A'] == 1, 'B'] = 'X'
DF

enter image description here

关于python - Pandas :更改列中 bool 索引选择的值而不会收到警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612300/

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