我有一个数据框中的列,其中包含值'a','b','c','d' and 'e'
和总共150万记录。我想将这些值转换为数字类别,例如 a=>1,b=>2,c=>3,d=>4 and e=>5
。什么是通过熊猫循环数据框的有效方式?
因为我有150万记录,什么是最有效的方式我可以做这个手术?
我有一个数据框中的列,其中包含值'a','b','c','d' and 'e'
和总共150万记录。我想将这些值转换为数字类别,例如 a=>1,b=>2,c=>3,d=>4 and e=>5
。什么是通过熊猫循环数据框的有效方式?
因为我有150万记录,什么是最有效的方式我可以做这个手术?
我认为使用df.applymap()
与一个有效的函数将伎俩。
pd.DataFrame(
pd.factorize(df.values.ravel())[0].reshape(len(df), -1) + 1,
df.index, df.columns
)
虽然此代码可能回答此问题,但提供有关如何解决问题和/或为何解决问题的其他上下文会提高答案的长期价值。 - [来自评论](http://stackoverflow.com/review/low-quality-posts/16188660) –
@DonaldDuck thx的反馈。我会尽可能地改进它。 – piRSquared
您是否检查过文档?这种操作是**有据可查**:http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.to_numeric.html –
@OliverCharlesworth我尝试了itertuples,iteritems ....都花费了很多时间。 –
当谈到DataFrame时,没有有效的循环方法。有效的方法是矢量化的,但您必须更清楚地定义您的问题(带有样本输入和期望的输出对),以便我们能够为您提供帮助。 – ayhan