2016-04-29 124 views
0

我有这种类型的柱的数据帧从塔中减去值(从中找到的变化):熊猫:

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

你可以只减去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 
+0

如果我想负值为负这可能吗? – ValientProcess

+1

删除abs ... –

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