我有一个像这样的数据框
CategoryNumber
1
2
3
1
3
我想创建一个新列“ Category”,该列基于“ CategoryNumber”列中的值来分配值,就像这样
CategoryNumber Category
1 First Category
2 Second Category
3 Third Category
1 First Category
3 Third Category
我该如何使用python和pandas
答案 0 :(得分:1)
您可以直接从熊猫使用CatCodes。
cat.codes
df['Category2'] = df['CategoryNumber'].astype('category').cat.codes
CategoryNumber Category2
0 1 0
1 2 1
2 3 2
3 1 0
4 3 2
如果需要将其制成A,B,C等,请查看map
df['Letters'] = df['Category2'].map(dict(zip(df['Category2'].tolist(),string.ascii_uppercase)))
CategoryNumber Category2 Letters
0 1 0 D
1 2 1 B
2 3 2 E
3 1 0 D
4 3 2 E
答案 1 :(得分:1)
使用map
import string
df.CategoryNumber.map(dict(zip(range(1,26),string.ascii_lowercase)))
Out[472]:
0 a
1 b
2 c
3 a
4 c
Name: CategoryNumber, dtype: object