我有一个数据框,它是列的一部分
category
Search
Search
Онлайн-магазин
Онлайн-магазин
Форумы и отзывы
Онлайн-магазин
Форумы и отзывы
Агрегатор
Информационный ресурс
Онлайн-магазин
Телеком
Онлайн-магазин
我需要创建带有类别的列,转换为数字。 我的意思是
category numeric_category
Search 1
Search 1
Онлайн-магазин 2
Онлайн-магазин 2
Форумы и отзывы 3
Онлайн-магазин 2
Форумы и отзывы 3
Агрегатор 4
Информационный ресурс 5
Онлайн-магазин 2
Телеком 6
Онлайн-магазин 2
我该怎么做?使用numpy
?
答案 0 :(得分:1)
使用factorize
:
df['numeric_category'] = pd.factorize(df.category)[0] + 1
然后您还可以将其转换为category
以节省内存:
df['numeric_category'] = pd.Categorical(pd.factorize(df.category)[0] + 1)
样品:
df = pd.DataFrame({'category':['a','s','a']})
print (df)
category
0 a
1 s
2 a
df['numeric_category'] = pd.Categorical(pd.factorize(df.category)[0] + 1)
print (df)
category numeric_category
0 a 1
1 s 2
2 a 1
答案 1 :(得分:1)
dict={}
for item in df.category:
if item not in dict:
dict[item]=len(dict)+1
print "category\t"+"numeric_category"
for item in df.category:
print "%s\t%s"%(item,dict[item])