使用基于现有分类列Medal的值将新列“得分”添加到DataFrame中

时间:2019-12-17 01:02:08

标签: python pandas

比方说:有一个数据框:

country       Edition     sports       Athletes           Medal  score
Germany          1990    Aquatics  HAJOS, Alfred          gold     3
Germany          1990    Aquatics  HIRSCHMANN, Otto       silver   2
Germany          1990    Aquatics  DRIVAS, Dimitrios      silver   2
US               2008    Athletics MALOKINIS, Ioannis     gold     3
US               2008    Athletics HAJOS, Alfred          silver   2
US               2009    Athletics CHASAPIS, Spiridon     gold     3
France           2010    Athletics CHOROPHAS, Efstathios  gold     3
France           2010    Athletics CHOROPHAS, Efstathios  gold     3
France           2010    golf      HAJOS, Alfred          Bronze   1
France           2011    golf      ANDREOU, Joannis       silver   2
Spain            2011    golf      BURKE, Thomas          gold     3

古铜= 1,银= 2,金= 3。

谁能告诉我如何将这些值分配给新列'score'?添加新列df['score']之后?

2 个答案:

答案 0 :(得分:2)

您应该可以通过以下方式做到这一点:

scores = {'gold':3,'silver':2,'bronze':1}                                                                                                                                           

df['scores'] = df['Medal'].map(scores) 

答案 1 :(得分:2)

使用Series.replace

df['score']=df['Medal'].replace({'Bronze':1,'silver':2,'gold':3})

或如我上面建议的:Series.map

df['score']=df['Medal'].map({'Bronze':1,'silver':2,'gold':3})