将数字分配给 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
我有以下数据框:
#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