2017-05-21 66 views
-2

我有一個數據框中的列,其中包含值'a','b','c','d' and 'e'和總共150萬記錄。我想將這些值轉換爲數字類別,例如 a=>1,b=>2,c=>3,d=>4 and e=>5什麼是通過熊貓循環數據框的有效方式?

因爲我有150萬記錄,什麼是最有效的方式我可以做這個手術?

+0

您是否檢查過文檔?這種操作是**有據可查**:http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.to_numeric.html –

+0

@OliverCharlesworth我嘗試了itertuples,iteritems ....都花費了很多時間。 –

+0

當談到DataFrame時,沒有有效的循環方法。有效的方法是矢量化的,但您必須更清楚地定義您的問題(帶有樣本輸入和期望的輸出對),以便我們能夠爲您提供幫助。 – ayhan

回答

0

我認爲使用df.applymap()與一個有效的函數將伎倆。

0
pd.DataFrame(
    pd.factorize(df.values.ravel())[0].reshape(len(df), -1) + 1, 
    df.index, df.columns 
) 
+0

雖然此代碼可能回答此問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文會提高答案的長期價值。 - [來自評論](http://stackoverflow.com/review/low-quality-posts/16188660) –

+0

@DonaldDuck thx的反饋。我會盡可能地改進它。 – piRSquared

相關問題