![](/img/trans.png)
[英]Python Pandas - Logical indexing dataframe with multiple indexes based on single index
[英]Pandas logical indexing on a single column of a dataframe to assign values
我是一个R程序员,并寻找类似的方式在R中做这样的事情:
data[data$x > value, y] <- 1
(基本上,获取x列大于某个值的所有行,并在这些行中为y列指定值1)
在熊猫中,它似乎相当于:
data['y'][data['x'] > value] = 1
但是这给出了一个SettingWithCopyWarning。
我试过的等价陈述是:
condition = data['x']>value
data.loc(condition,'x')=1
但我很困惑。 也许我在R方面思考太多,无法理解Python中正在发生的事情。 在Python或变通方法中,这将是什么相同的代码?
你的陈述不正确它应该是:
data.loc[condition, 'x'] = 1
例:
In [3]:
df = pd.DataFrame({'a':np.random.randn(10)})
df
Out[3]:
a
0 -0.063579
1 -1.039022
2 -0.011687
3 0.036160
4 0.195576
5 -0.921599
6 0.494899
7 -0.125701
8 -1.779029
9 1.216818
In [4]:
condition = df['a'] > 0
df.loc[condition, 'a'] = 20
df
Out[4]:
a
0 -0.063579
1 -1.039022
2 -0.011687
3 20.000000
4 20.000000
5 -0.921599
6 20.000000
7 -0.125701
8 -1.779029
当你订阅df时,你应该使用方括号[]
而不是括号()
,这是一个函数调用。 查看文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.