Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何基于其他行值添加数据框列_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

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

Python 如何基于其他行值添加数据框列,python,python-3.x,pandas,dataframe,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

我正在尝试添加一个新列,并根据其他行的值设置其值。假设我们有以下数据帧:

    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']

但它不起作用

您可以设置
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

谢谢,没想到!是否可以添加一个条件?所以它变成了:其中B=B+2,D=value?@user3379482可能
df[df['D']==value]。设置索引('B')['C']