2017-06-30 10 views
0
df['sales'].replace(['sales', 'accounting', 'hr', 'technical', 'support', 'management', 
     'IT', 'product_mng', 'marketing', 'RandD'], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], inplace = True) 

これは私が使用しているコードで、dfは 'sales'を列の1つとして持つデータフレームです。。Pythonで文字列と整数で置き換えます

私は次のエラーを取得しています:

enter image description here

は、私は、この交換作業を実行するために使用することができますが、他の機能であり、または私はここで何かが足りないのですか?

おかげ

+0

ストリングを任意のint(すなわち、。ラベルのエンコーディング?)または具体的にあなたが言及するもの。また、あなたのコードは私のために働いた – Alter

答えて

0
あなたはリストの内包表記を使用することができます

df['sales'] = [ index for index, val in enumerate(['sales', 'accounting', 'hr', 'technical', 'support', 'management', 
    'IT', 'product_mng', 'marketing', 'RandD'])] 

OR:

df['sales'] = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] if i in ['sales', 'accounting', 'hr', 'technical', 'support', 'management', 
    'IT', 'product_mng', 'marketing', 'RandD'] else i for i in df["sales"]] 
+1

私はパンダに精通していないが、私はあなたがリストの理解に 'i == [...]ではなく[...] '。 –

+0

私はあなたが正しいと思います。 – Ajax1234

0

私は本当にあなたが私はあなたに二つの選択肢を与えるので、達成しようとしているのかわかりません。

df['sales'] = [ index for index, val in enumerate(df['sales'])]