#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 в одном фрейме данных, вы можете объединить их.