熊猫:从列中减去值(以查找其中的变体)

时间:2016-04-29 16:58:46

标签: python pandas

我有一个包含此类列的数据框:

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

谢谢!

2 个答案:

答案 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])