Skip to content Skip to sidebar Skip to footer

How To Make Pandas/core/generic/pct_change To Return A Positive Value When Changing From A Negative To A Positive Value

ipdb> df['input'] datetime 2011-01-01 2.577163 2011-01-02 0.579833 2011-01-03 -0.191187 2011-01-04 0.430754 ipdb> df['input'].pct_change() datetime 2011-01-01

Solution 1:

You can write your condition out and multiply by -1 wherever it's met:

>>> p = df["input"].pct_change()
>>> p
datetime
2011-01-01         NaN
2011-01-02   -0.775011
2011-01-03   -1.329728
2011-01-04   -3.253051
Name: input, dtype: float64
>>> p.loc[(df["input"].shift() < 0) & (df["input"] > 0)] *= -1
>>> p
datetime
2011-01-01         NaN
2011-01-02   -0.775011
2011-01-03   -1.329728
2011-01-04    3.253051
Name: input, dtype: float64

Post a Comment for "How To Make Pandas/core/generic/pct_change To Return A Positive Value When Changing From A Negative To A Positive Value"