对列值求反并仅在数据帧中的某些列中添加特定值

2024-10-05 10:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

获取一个dataframe df,我希望既能删除所有行/条目的特定列中的值,又能添加另一个值。要添加的值是每个列的固定加法。你知道吗

我相信我可以复制df,比如dfcopy=df,将dfcopy中的所有单元格值设置为特定的数字,然后从dfcopy中减去df,但我希望有一种更简单的方法。你知道吗

我在想我需要改变一下

df.iloc[:, [0,3,4]]

例如,这应该是什么样子:

    A   B   C   D   E
0   1.0 3.0 1.0 2.0 7.0
1   2.0 1.0 8.0 5.0 3.0
2   1.0 1.0 1.0 1.0 6.0

然后仅对列(0、3、4)中的值求反,然后加10(例如),我们将得到:

    A   B   C   D   E
0   9.0 3.0 1.0 8.0 3.0
1   8.0 1.0 8.0 5.0 7.0
2   9.0 1.0 1.0 9.0 4.0

谢谢。你知道吗


Tags: 方法目的dataframedf数字样子ilocdfcopy
2条回答

您可以首先将-1^{}相乘,然后将10^{}相加,以用于我们使用^{}选择的列:

df.iloc[:, [0,3,4]] = df.iloc[:, [0,3,4]].mul(-1).add(10)

     A    B    C    D    E
0  9.0  3.0  1.0  8.0  3.0
1  8.0  1.0  8.0  5.0  7.0
2  9.0  1.0  1.0  9.0  4.0

或如意见中所建议的:

df.iloc[:, [0,3,4]] = 10-df.iloc[:,[0,3,4]]

     A    B    C    D    E
0  9.0  3.0  1.0  8.0  3.0
1  8.0  1.0  8.0  5.0  7.0
2  9.0  1.0  1.0  9.0  4.0

熊猫是非常直观的让你执行这些操作

否定:

df.iloc[:, [0,2,7,10,11] = -df.iloc[:, [0,2,7,10,11]

添加常数c:

df.iloc[:, [0,2,7,10,11] = df.iloc[:, [0,2,7,10,11]+c

或更改为常量c:

df.iloc[:, [0,2,7,10,11] = c

还有其他你能想到的算术

相关问题 更多 >

    热门问题