как получить результат pandas pct_change в процентах?

#python #pandas #series

#python #pandas #Серии

Вопрос:

Я использую пример pandas, чтобы делать то, что я хочу делать:

 >>> s = pd.Series([90, 91, 85])
>>> s
0    90
1    91
2    85
dtype: int64
  

затем pct_change() применяется к этой серии:

 >>> s.pct_change()
0         NaN
1    0.011111
2   -0.065934
dtype: float64
  

хорошо, справедливо, но Percentage Increase = [ (Final Value - Starting Value) / |Starting Value| ] × 100

таким образом, результаты должны быть на самом деле [NaN, 1.11111%, -6.59341%] . как бы я получил эту *100 часть, которая pct_change() не выполнялась для меня?

Комментарии:

1. print(s.pct_change()*100)

Ответ №1:

Вы можете просто умножить результат на 100 , чтобы получить то, что вы хотите:

 In [712]: s.pct_change().mul(100)
Out[712]: 
0         NaN
1    1.111111
2   -6.593407
dtype: float64
  

Если вы хотите, чтобы результат был одним list из этих значений, сделайте это:

 In [714]: l = s.pct_change().mul(100).tolist()

In [715]: l
Out[715]: [nan, 1.1111111111111072, -6.593406593406592]
  

Ответ №2:

Попробуйте объединить функции:

.pct_change().multiply(100)

после желаемой операции df. Вы могли бы объединить больше функций до или после.