python - TypeError:不可排序的类型:str()> float()

Posted

技术标签:

【中文标题】python - TypeError:不可排序的类型:str()> float()【英文标题】:python - TypeError: unorderable types: str() > float() 【发布时间】:2016-05-20 12:57:09 【问题描述】:

我有一个 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)

【问题讨论】:

你能显示你的 csv 文件内容吗? 你想对这些行做什么?放下它们? (dropna) 填写 NaN 值? (fillna) 不,我想将此行归类为数字。该行有字符。 您可以添加数据样本吗?也许 5-6 行和所需的输出。或者更好Minimal, Complete, and Verifiable example. 你的意思是pandas.factorize 【参考方案1】:

使用 ~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]

【讨论】:

非常感谢:) dataset['v3'] = dataset['v3'].factorize()[0] 解决了我的问题

以上是关于python - TypeError:不可排序的类型:str()> float()的主要内容,如果未能解决你的问题,请参考以下文章

python fbprophet错误,TypeError:'module'对象不可调用

“TypeError:'WebElement'对象不可迭代”错误代码python爬取

Python - TypeError:'int'对象不可迭代

Python:Concurrent.Futures 错误 [TypeError:'NoneType' 对象不可调用]

TypeError:'int'对象不可迭代,使用 Python 3 [关闭]

TypeError:“NoneType”对象在 Python 中不可迭代