2016-06-25 4 views
1

こんにちは、私はpythonとpandasを初めて使っています。パンダデータフレームのユニークな値を置き換えます

私は、パンダを使用して1つのカラムのユニークな値を抽出しました。 列のユニークな値を取得した後、文字列です。

['Others, Senior Management-Finance, Senior Management-Sales' 
    'Consulting, Strategic planning, Senior Management-Finance' 
    'Client Servicing, Quality Control - Product/ Process, Strategic  
    planning' 
    'Administration/ Facilities, Business Analytics, Client Servicing' 
    'Sales & Marketing, Sales/ Business Development/ Account Management,  
    Sales Support'] 

文字列の値を固有の整数値に置き換えたいとします。

私はあなたにダミーの入力と出力を与えることができます。

入力:

Col1 
    A 
    A 
    B 
    B 
    B 
    C 
    C 

ユニークDF値がどのようにこの

Col1 
    1 
    1 
    2 
    2 
    2 
    3 
    3 

私に勧めてください方法のように私をできるはず列を交換した後、以下のよう

​​

来ます300以上のユニークな値があるので、ループまたは他の方法でそれを行います。

答えて

1

使用factorize

df['Col1'] = pd.factorize(df.Col1)[0] + 1 
print (df) 
    Col1 
0  1 
1  1 
2  2 
3  2 
4  2 
5  3 
6  3 

Factorizing values

numpy.unique解決策が、slowier巨大dataframe中:

_,idx = np.unique(df['Col1'],return_inverse=True) 
df['Col1'] = idx + 1 
print (df) 
    Col1 
0  1 
1  1 
2  2 
3  2 
4  2 
5  3 
6  3 

最終あなたはcategoricalに値を変換することができます - 主な理由memory usage以下:

df['Col1'] = pd.factorize(df.Col1)[0] 
df['Col1'] = df['Col1'].astype("category") 
print (df) 
    Col1 
0 0 
1 0 
2 1 
3 1 
4 1 
5 2 
6 2 

print (df.dtypes) 
Col1 category 
dtype: object 
+0

おかげで再び。 – JT28

+0

整数値を文字列に変換する方法は? – JT28

+0

df ['Col1'] = df ['Col1']。astype( "str") – jezrael

関連する問題