2017-01-23 133 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 #