使用Pandas数据框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
谢谢。
答案 0 :(得分:2)
对于我们用mul
选择的那些列,您可以先将-1
与add
相乘,然后将10
与iloc
相加:
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
或按照注释中的 anky_91 建议:
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
答案 1 :(得分:1)
pandas非常直观,可以让您执行这些操作,
否定:
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
以及您能想到的任何其他算法