将数字分配给 pandas 数据框中的类别

Assigning numbers to category in pandas dataframe

我有以下数据框:

#ID Score
1029 78
1229 89
1929 77
2124 100
3120 89
4145 84

我想创建以下数据框:

#ID Classification Score
1029 Freshman 78
1229 Freshman 89
1929 Freshman 77
2124 Sophomore 100
3120 Junior 89
4145 Senior 84

因此 'Classification' 列分配取决于“#ID”列的第一个数字。我的原始数据框包含数千条记录,因此创建字典并不是一个真正的选择。有更简单的方法吗?

您实际上可以使用字典来映射可能的第一个数字,然后您可以像这样使用 apply

classification = {
    '1': 'Freshman',
    '2': 'Sophomore',
    '3': 'Junior',
    '4': 'Senior'
}

df['Classification'] = df['#ID'].apply(lambda id: classification[str(id)[0]])

这会产生您想要的数据框:

    #ID  Score Classification
0  1029     78       Freshman
1  1229     89       Freshman
2  1929     77       Freshman
3  2124    100      Sophomore
4  3120     89         Junior
5  4145     84         Senior