我有一个看起来像这样的大数据框
A B C
1.2 11.1 42.1
2.4 12.3 32.4
3.1 32.4 21.7
5.8 42.1
7.3 6.8
8.9 9.21
9.1 10.2
10.1 21.7
我想在B列中找到C值,并获取它对应的A值,如下所示
A B C D
1.2 11.1 42.1 5.8
2.4 12.3 32.4 3.1
3.1 32.4 21.7 10.1
5.8 42.1
7.3 6.8
8.9 9.21
9.1 10.2
10.1 21.7
谢谢
答案 0 :(得分:2)
使用Series.map
,但在B
列中是必需的唯一值:
df['D'] = df['C'].map(df.set_index('B')['A'])
print (df)
A B C D
0 1.2 11.10 42.1 5.8
1 2.4 12.30 32.4 3.1
2 3.1 32.40 21.7 10.1
3 5.8 42.10 NaN NaN
4 7.3 6.80 NaN NaN
5 8.9 9.21 NaN NaN
6 9.1 10.20 NaN NaN
7 10.1 21.70 NaN NaN
如果不是唯一的,请获取:
“ InvalidIndexError:重新索引仅对具有唯一值的索引对象有效”
然后使用:
df['D'] = df['C'].map(df.drop_duplicates('B').set_index('B')['A'])