2017-01-23 134 views
1

我有一个数据集象下面这样:字符串转换成整数的熊猫数据帧

   Name  ARowss TotalRowss  Percentage 
       motors  11   11    100 
       trck1   2    2    100 
       trck2   2    2    100 
       hydr1   4    4    100 
       gas1   2    2    100 

我做的,我有一个新的号码分配到“姓名”每个值数据的一些清理工作。所有值在“名称”列中都是唯一的。所以,从上面的数据集中, “马达”应该有1,“trck1”应该有2,“trck2”应该有3等等。

回答

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 #