我有一个pandas dataframe,它包含一个非数字值的列。如何将它们转换为整型/浮点型。
eq:
Col1 Col2
Lip_GD 267
Gly_hy_68 467
Hint_2 628
Jac+Jac 339
Lip_GD 234
Jac+Jac 267当我将这些数据读入pandas数据帧时,我将如何将列1转换为int?
发布于 2015-11-26 08:16:58
创建Col1中每个唯一值到索引值的映射:
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中的值映射回它们的惟一标识符。
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发布于 2015-11-28 12:22:53
使用Sklearn的
有一种方法可以通过使用LabelEncoder的sklearn来实现。
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(df['Col1'])
df['Col3'] = le.transform(df['Col3'])https://stackoverflow.com/questions/33923059
复制相似问题