Khr*_*ris 6 python indexing conditional-statements python-2.7 pandas
我有一个数据框,我想只更改另一列满足某个条件的列的值.我正试图这样做iloc,它要么不起作用,要么我得到那个恼人的警告:
尝试在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']})
Run Code Online (Sandbox Code Playgroud)
做其中一个
DF['B'].iloc[:][DF['A'] == 1] = 'X'
DF.iloc[:]['B'][DF['A'] == 1] = 'Y'
Run Code Online (Sandbox Code Playgroud)
工作,但导致上面的警告.
这个也发出警告,但不起作用:
DF.iloc[:][DF['A'] == 1]['B'] = 'Z'
Run Code Online (Sandbox Code Playgroud)
我真的很困惑如何使用loc,iloc和ix右边做布尔索引,也就是说,如何以正确的顺序和正确的语法提供行索引,列索引和布尔索引.
有人可以为我清除这个吗?
你是链接你的选择者,导致警告.将选择合并为一个.
请loc改用
DF.loc[DF['A'] == 1, 'B'] = 'X'
DF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |