2 回答
TA贡献1820条经验 获得超2个赞
使用pd.DataFrame.lookup
整数并将其映射到列标签:
df['new'] = df.lookup(df.index, 'x' + df['colum'].astype(str))
print(df)
x1 x2 x3 x4 x5 colum new
0 206 214 21 122 554 2 214
1 226 234 123 456 789 4 456
2 245 253 558 855 123 5 123
3 265 272 0 111 222 4 111
4 283 291 214 589 996 1 283
TA贡献1812条经验 获得超5个赞
使用numpy indexing:
df['new'] = df.values[np.arange(len(df)), df['colum'] - 1]
print (df)
x1 x2 x3 x4 x5 colum new
0 206 214 21 122 554 2 214
1 226 234 123 456 789 4 456
2 245 253 558 855 123 5 123
3 265 272 0 111 222 4 111
4 283 291 214 589 996 1 283
添加回答
举报