首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将包含字符串值的pandas数据帧的列转换为int/float?

问如何将包含字符串值的pandas数据帧的列转换为int/float?
EN

Stack Overflow用户
提问于 2015-11-26 01:38:53
回答 2查看 3.2K关注 0票数 3

我有一个pandas dataframe,它包含一个非数字值的列。如何将它们转换为整型/浮点型。

eq:

代码语言:javascript
复制
Col1       Col2

Lip_GD      267

Gly_hy_68   467

Hint_2      628

Jac+Jac     339

Lip_GD      234

Jac+Jac     267

当我将这些数据读入pandas数据帧时,我将如何将列1转换为int?

EN

回答 2

Stack Overflow用户

发布于 2015-11-26 08:16:58

创建Col1中每个唯一值到索引值的映射:

代码语言:javascript
复制
mapping = {k: v for v, k in enumerate(df.Col1.unique())}
>>> mapping
{'Gly_hy_68': 1, 'Hint_2': 2, 'Jac+Jac': 3, 'Lip_GD': 0}

然后创建一个新列,将Col1中的值映射回它们的惟一标识符。

代码语言:javascript
复制
df['Col3'] = df.Col1.map(mapping)
>>> df
        Col1  Col2  Col3
0     Lip_GD   267     0
1  Gly_hy_68   467     1
2     Hint_2   628     2
3    Jac+Jac   339     3
4     Lip_GD   234     0
5    Jac+Jac   267     3
票数 10
EN

Stack Overflow用户

发布于 2015-11-28 12:22:53

使用Sklearn的

有一种方法可以通过使用LabelEncoder的sklearn来实现。

代码语言:javascript
复制
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(df['Col1'])
df['Col3'] = le.transform(df['Col3'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33923059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档