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