我有一个有四列的数据帧,只想将每行的浮点数乘以相同的值,直到每行的和等于0.9。不应触摸总和已高于0.9的行
df = pd.DataFrame({'A':[0.03, 0.0, 0.4],
'B': [0.1234, 0.4, 0.333],
'C': [0.5, 0.4, 0.0333],
'D': [0.8, 0.2, 0.2]})
原始数据帧:
A B C D
0 0.03 0.1234 0.5000 0.8
1 0.00 0.4000 0.4000 0.2
2 0.40 0.3330 0.0333 0.2
列总和:
A: 0.43
B: 0.7564
C: 0.9333
D: 1.2
结果:将列总和小于0.9的细胞相乘,使每列三个细胞之和均为0.9。重要的是0的单元格将保持0,这不应被触摸。 所以在这种情况下,A、B和C列必须调整
我想你把行和列搞混了
作为
df.sum(1)
返回而
df.sum()
返回因此,如果只想对总和小于
0.9
的列使用df.mul(0.9/df.sum())
,可以使用np.where
它回来了
相关问题 更多 >
编程相关推荐