python - TypeError : unorderable types: str() > float()

标签 python python-3.x pandas machine-learning scikit-learn

我有一个 csv 文件和 v3 列,但该列有一些“nan”行。 我怎样才能排除行。

 dataset = pd.read_csv('mypath') 

    enc = LabelEncoder()
    enc.fit(dataset['v3'])
    print('fitting')
    dataset['v3'] = enc.transform(dataset['v3'])
    print('transforming')
    print(dataset['v3'])
    print('end')

编辑:V3 列有 A、C、B、A、C、D、、、A、S 之类的,我想将其转换为 (1,2,3,1,2,4,, ,1,7)

最佳答案

使用 ~isnull() 屏蔽 nan 值:

mask = ~dataset['v3'].isnull()
dataset['v3'][mask] = enc.fit_transform(dataset['v3'][mask])

另一种方法是使用 pandas.factorize 函数,它会自动处理 nans(将它们赋值 -1):

dataset['v3'] = dataset['v3'].factorize()[0]

关于 python - TypeError : unorderable types: str() > float(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310710/

相关文章:

python - Panda 0.22 dataframe.drop 比它应该多的行

python - python try-except中可以有else block 语句吗?

python - 如何用玩具名称重命名长 Pandas 数据框?

python - 如何在同一行打印列表中的字符串及其索引?

python - 在 Pandas 中用标量乘以列

python - 如何使用 Python 响应 HTTP 请求

python - 在 Py3k 中,我如何让信号处理程序阻止信号的默认操作?

python - 添加数据标签 - matplotlib 条形图

python - 保存和恢复 Pandas 显示选项

python - 值错误 : bad input shape in sklearn Python