如何基于其他行值添加熊猫数据框列

时间:2020-11-11 16:35:45

标签: python python-3.x pandas dataframe

我正在尝试添加新列并根据其他行值设置其值。可以说我们有以下数据框:

    df = pd.DataFrame({
         'B':[1,2,3,4,5,6],
         'C':[7,8,9,4,2,3],
         'D':[1,3,5,7,1,0],
    })
    

具有相应的输出

    B   C   D
    1   7   1
    2   8   3
    3   9   5
    4   4   7
    5   2   1
    6   3   0

我想添加一个新列'E',其值如下: E = df.C值,其中B = B + 2。
例如,E的第一个值应为3(我们选择B = 0 + 2 = 2的行,然后从该行中选择C值)。 我尝试了以下

    f['E'] = np.where(f.B == (f['B']+2))['C']

但是它不起作用

1 个答案:

答案 0 :(得分:1)

您可以设置B并建立索引并使用它来映射修改后的数据:

df['E'] = df['B'].add(2).map(df.set_index('B')['C'])

输出:

   B  C  D    E
0  0  1  7  3.0
1  1  2  8  4.0
2  2  3  9  5.0
3  3  4  4  6.0
4  4  5  2  NaN
5  5  6  3  NaN