使用另一列中的偏移量变量在Python中检索将来的值

时间:2018-08-07 22:16:27

标签: python pandas numpy

我试图弄清楚如何在Python的另一行中使用偏移量变量从将来的日期中检索值。例如,我下面有数据框df,我想找到一种产生列C的方法:

Orig A  Orig B  Desired Column C
54         1           76
76         4           46
14         3           46
35         1           -3
-3         0           -3
46         0           46
64         0           64
93         0           93
72         0           72

非常感谢您的帮助,谢谢!

2 个答案:

答案 0 :(得分:2)

您可以将NumPy用于矢量解决方案:

import numpy as np

idx = np.arange(df.shape[0]) + df['OrigB'].values
df['C'] = df['OrigA'].iloc[idx].values

print(df)

   OrigA  OrigB   C
0     54      1  76
1     76      4  46
2     14      3  46
3     35      1  -3
4     -3      0  -3
5     46      0  46
6     64      0  64
7     93      0  93
8     72      0  72

答案 1 :(得分:1)

import pandas as pd

dict = {"Orig A": [54,76,14,35,-3,46,64,93,72],
        "Orig B": [1,4,3,1,0,0,0,0,0],
        "Desired Column C": [76,46,46,-3,-3,46,64,93,72]}

df = pd.DataFrame(dict)

df["desired_test"] = [df["Orig A"].values[i+j] for i,j in enumerate(df["Orig B"].values)]

df

   Orig A  Orig B  Desired Column C  desired_test
0      54       1                76            76
1      76       4                46            46
2      14       3                46            46
3      35       1                -3            -3
4      -3       0                -3            -3
5      46       0                46            46
6      64       0                64            64
7      93       0                93            93
8      72       0                72            72