熊猫找到某个值并从下一列中获取值

问题描述 投票:0回答:1

我有一个看起来像这样的大数据框,

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

谢谢

python-3.x pandas
1个回答
1
投票

使用Series.map,但在Series.map列中是必需的唯一值:

B

如果不是唯一的,获取:

“ InvalidIndexError:仅对具有唯一值的Index对象有效的索引重新索引”

然后使用:

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
© www.soinside.com 2019 - 2024. All rights reserved.