熊猫在数据框的单个列上进行逻辑索引以分配值

明天

我是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在数据框中的列上进行迭代以更改其值

在数据框中的列上进行迭代

如何根据条件在熊猫数据框的多列上分配值

在数据表的几列上进行子集和分配

使用dplyr或reshape2在数据框的多个列上进行卡方统计

在数据框列上进行迭代时,如何生成多个单独的列表

在数据框列上进行条件汇总,将“ n”行合并为1行

在数据框的多个列上进行分位数排序并变异结果

在数据框中的多个列上进行相同合并的更有效方法?

熊猫数据框-获取列索引以获取一行中的最小值

如何在熊猫数据框的列上进行迭代以运行回归

熊猫数据框,在滚动窗口中的任何列上进行计算

熊猫在多索引数据框中使用loc进行分配

如何在熊猫多索引内的列上进行操作

如何在熊猫数据框中更改单个索引值?

按索引重新分配熊猫数据框值

如何根据单个数据框中的值在数据框列表中分配值?

使用列中的值对熊猫数据框进行多索引

如何在Spark数据框的多个列上进行旋转?

熊猫在系列上重置索引以删除多索引

根据另一列的值在数据框的列上应用函数,然后进行分组

在数组的特定列上进行计算

切片和分配值的唯一顺序索引的多索引熊猫数据框

分组/过滤并在数据框的行上进行计算

在数据网格上进行多个文本框搜索

在数据框的各列上使用求和函数进行梳理

根据熊猫数据框中的其他索引值对索引值进行分组

根据熊猫中另一列上的值在数据框中创建一个新列

对多索引熊猫数据框进行排序