我有一个包含此类列的数据框:
magnetic_mag
34.451282394
44.81445845
24.833269553
25.032404588
22.027024464
我想找到30的每个值的变化(如果值大于30,那么我想从中减去30,如果它在下面我想从30减去值本身),那么输出列在数据框应如下所示:
magnetic_mag
4.451282394
14.81445845
5.166730447
4.967595412
7.972975536
用熊猫做任何简单的方法吗?
编辑: 如果我希望低于30的值与( - )符号(负)是可能的吗? 期望的输出:
magnetic_mag
4.451282394
14.81445845
-5.166730447
-4.967595412
-7.972975536
谢谢!
答案 0 :(得分:2)
您可以减去30并致电abs:
(df["magnetic_mag"] - 30).abs()
Out[23]:
0 4.451282
1 14.814458
2 5.166730
3 4.967595
4 7.972976
Name: magnetic_mag, dtype: float64
答案 1 :(得分:2)
变体:
import numpy as np
np.where(df['magnetic_mag']>30, df['magnetic_mag']-30, 30-df['magnetic_mag'])
#Out[100]: array([ 4.45128239, 14.81445845, 5.16673045, 4.96759541, 7.97297554])