gpt4 book ai didi

python - 根据条件修改值

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:50 24 4
gpt4 key购买 nike

我面临的问题与 documentation 中解释的问题非常相似。此代码可以工作,但会引发警告:

In [296]: dfb = DataFrame({'a' : ['one', 'one', 'two',
.....: 'three', 'two', 'one', 'six'],
.....: 'c' : np.arange(7)})
.....:
# This will show the SettingWithCopyWarning
# but the frame values will be set
In [297]: dfb['c'][dfb.a.str.startswith('o')] = 42

是否有办法在过滤器中实现相同的行为而不引发警告?

最佳答案

使用loc,将 bool 条件放在方括号[]内,并将感兴趣的列放在逗号后面,这样您就不会执行chained indexing :

In [40]:

dfb.loc[dfb.a.str.startswith('o'),'c'] = 42
dfb
Out[40]:
a c
0 one 42
1 one 42
2 two 2
3 three 3
4 two 4
5 one 42
6 six 6

关于python - 根据条件修改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873014/

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