首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: Jupyter notebook

TypeError: Jupyter notebook
EN

Stack Overflow用户
提问于 2020-07-10 19:26:37
回答 2查看 75关注 0票数 0

我正在做文本预处理,但这很有挑战性,有人能解释一下为什么我有这样的类型吗

错误?我检查列的类型,它是int,那么代码有什么问题?

我用的是Jupiter笔记本。

代码语言:javascript
复制
fav = df[['favourites_count','text']].sort_values('favourites_count',
           ascending = False)[:5].reset_index()
for i in range(5):
    print(i, fav['text'][i],'\n')
代码语言:javascript
复制
TypeError: '<=' not supported between instances of 'str' and 'int'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-10 19:33:06

这很可能是因为您的列favourites_count具有混合数据类型。我建议您在排序前将其转换为数字:

代码语言:javascript
复制
df['favourites_count'] = pd.to_numeric(df['favourites_count'])
票数 0
EN

Stack Overflow用户

发布于 2020-07-10 19:51:45

当您沿着"favourites_count“列对dataframe df进行排序时,排序算法会沿着该列比较中的值。

当它将一个数值与其他数值进行比较时,它应该得到一个不是"int“数据类型的值。

使用以下语法检查列的类型:

代码语言:javascript
复制
df["favourites_count"].dtypes

如果输出显示

代码语言:javascript
复制
dtype('O')

这意味着列中的数据是混合数据。

正如在https://stackoverflow.com/a/62833412/13905190中提到的,使用"pd.to_numeric()“函数将"favourites_count”数据类型转换为数字数据类型。

现在,如果您检查列的“dtype”,它应该输出:

代码语言:javascript
复制
dtype('int64')

由于您成功地转换了数字列的数据类型,因此可以对其进行排序,而不会出现任何错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62833308

复制
相关文章

相似问题

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