我是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下标时,应使用方括号[]
而不是()
函数调用括号。查看文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句