【发布时间】:2017-01-29 10:52:18
【问题描述】:
我有一个数据框,我只想更改另一列满足特定条件的列的值。我目前正在尝试使用iloc 执行此操作,但它要么不起作用,要么我收到了那个烦人的警告:
试图在数据帧的切片副本上设置值
例子:
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'
我真的很困惑如何使用loc、iloc和ix进行布尔索引,即如何以正确的顺序提供行索引、列索引和布尔索引正确的语法。
谁能帮我解决这个问题?
【问题讨论】:
标签: python python-2.7 pandas indexing conditional-statements