我有一个如下数据集:
Name ARowss TotalRowss Percentage
motors 11 11 100
trck1 2 2 100
trck2 2 2 100
hydr1 4 4 100
gas1 2 2 100
我正在做一些数据清理,我必须为“Name”中的每个值分配一个新数字。 “名称”列中的所有值都是唯一的。那么,从上面的数据集中, “电机”应该有1个,“trck1”应该有2个,“trck2”应该有3个,依此类推。
答案 0 :(得分:1)
这是你想要的吗?
In [5]: df['id'] = pd.factorize(df.Name)[0]
In [6]: df
Out[6]:
Name ARowss TotalRowss Percentage id
0 motors 11 11 100 0
1 trck1 2 2 100 1
2 trck2 2 2 100 2
3 hydr1 4 4 100 3
4 gas1 2 2 100 4
或者这取决于你的目标:
In [10]: df.Name = pd.factorize(df.Name)[0] + 1
In [11]: df
Out[11]:
Name ARowss TotalRowss Percentage
0 1 11 11 100
1 2 2 2 100
2 3 2 2 100
3 4 4 4 100
4 5 2 2 100
它也适用于非唯一值:
In [15]: df
Out[15]:
Name ARowss TotalRowss Percentage
0 motors 11 11 100
1 trck1 2 2 100
2 trck2 2 2 100
3 hydr1 4 4 100
4 gas1 2 2 100 # duplicates in `Name`
5 gas1 2 3 111 #
In [16]: df.Name = pd.factorize(df.Name)[0] + 1
In [17]: df
Out[17]:
Name ARowss TotalRowss Percentage
0 1 11 11 100
1 2 2 2 100
2 3 2 2 100
3 4 4 4 100
4 5 2 2 100 #
5 5 2 3 111 #