Переменная b, показывающая следующее значение каждого заданного значения в переменной a

#python #python-3.x #pandas #series

#python #python-3.x #pandas #Серии

Вопрос:

У меня есть список значений (в виде серий), который выглядит следующим образом:

     a
  12.34
  13.15
  14.36
  15.8
  16.41
  

Я хотел бы создать новую переменную (b), которая содержит следующее значение каждого заданного значения. Таким образом, результат будет выглядеть следующим образом:

     a        b
  12.34    13.15
  13.15    14.36
  14.36    15.8
  15.8     16.41
  16.41     nan
  

Кто-нибудь может помочь?

Спасибо

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

1. df['b'] = df['a'].shift(-1)

Ответ №1:

Не могли бы вы, пожалуйста, попробовать следовать в pandas:

 import pandas as pd
df['b']=df.shift(-1, axis = 0) 
df
  

Когда мы печатаем значение Dataframe, оно будет следующим:

      a        b
0   12.34   13.15
1   13.15   14.36
2   14.36   15.80
3   15.80   16.41
4   16.41   NaN
  

Ответ №2:

Попробуйте:

 df["b"] = df["a"].diff(-1)
  

Ответ №3:

Это весь код:

 import pandas as pd
import numpy as np
a=pd.Series((12.34,13.15,14.36,15.8,16.41))
b=[]
for x in range(len(a)):
    if x!=len(a)-1:
        b.append(a[x 1])
    else:
        b.append(np.nan)
b=pd.Series(b)
print(b)
  

Это создало бы новую серию с именем b. Если вам нужны оба a и b в одном фрейме данных, вы можете объединить их.