我有一个像这样的 Pandas 数据框:
name a b c
jack -10 -6 -10
bill -6 -3 -5
ray -3 -12 -9
pew 4 -23 -2
shaun 12 3 2
mitch 3 5 2
我如何制作一个新的数据框,它从每个相应的列(a、b、c)中获取第一个正值,并将该列中的所有值除以该列中选定的第一个正值并存储除法结果代替所有的值。输出应该是这样的
name a b c
jack -10/4 -6/3 -10/2
bill -6/4 -3/3 -5/2
ray -3/4 -12/3 -9/2
pew 4/4 -23/3 -2/2
shaun 12/4 3/3 2/2
mitch 3/4 5/3 6/2
最佳答案
另一种方式:
m=df.set_index('name')
final=m.div(m.mask(m.lt(0)).bfill().iloc[0]).reset_index()
name a b c
0 jack -2.50 -2.000000 -5.0
1 bill -1.50 -1.000000 -2.5
2 ray -0.75 -4.000000 -4.5
3 pew 1.00 -7.666667 -1.0
4 shaun 3.00 1.000000 1.0
5 mitch 0.75 1.666667 1.0
关于python - Pandas :如何获得第一个正数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835948/