2017-05-21 46 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

相关问题