将值从字典映射到数据框

时间:2020-08-29 18:07:51

标签: python pandas

我有这个df

    opponent  pontos_num
0        262        29.1
1        265        28.8
2        284        21.4
3        282        16.3
4        266        14.8
5        292        12.4
6        373         9.6
7        354         6.8
8        277         6.3
9        294         5.5
10       276         3.9
11       356         3.5
12       280         3.3
13       263         0.9
14       293         0.2
15       264         0.2
16       285        -1.6
17       290        -5.3
18       267        -6.2
19       275        -6.5

这句话:

teams_dict = {'team1':262, 'team2': 263, 'team3': 264, 'team4':265, 'team5':266,
    'team6':267, 'team7':275, 'team8': 276, 'team9': 277, 'team10': 280, 'team11': 282,
    'team12':284, 'team13':285, 'team14':290, 'team15':292, 'team16':293, 'team17':294,
    'team18':354, 'team19':356, 'team20':373}

现在,我正在尝试将团队名称引入我的df。我正在尝试:

    df['opponent_name'] = df['opponent'].map(lambda x: teams_dict[x])

但是我得到了:

KeyError: 262

我想念什么?

1 个答案:

答案 0 :(得分:0)

如sushanth所说,您需要交换teams_dict来拥有value: key对。

那么您应该更喜欢内置.replace而不是.map

df['opponent_name'] = df.opponent.replace(
    {v: k for k, v in teams_dict.items()})