问题描述
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
有人可以帮忙吗?
谢谢
解决方法
尝试:
df["b"] = df["a"].diff(-1)
,
请您尝试在熊猫中进行以下操作:
import pandas as pd
df['b']=df.shift(-1,axis = 0)
df
当我们打印数据框值时,将如下所示:
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
,
这是完整的代码:
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都在同一数据框中,则可以将它们串联起来。