'>' ' str'的实例之间不支持和' int'

时间:2017-09-14 19:49:24

标签: python python-3.x pandas dataframe

我遇到了错误

  

'>' ' str'的实例之间不支持和' int'

尝试在Pandas数据框中打印以下行时

print (survey_df_clean.shape)
print (survey_df_clean[survey_df_clean['text']>30].shape)

我是否应该尝试将它们转换为int以及在此语句中如何工作?

5 个答案:

答案 0 :(得分:3)

此消息表明,您尝试将字符串对象(int)与整数(survey_df_clean['text'] )进行比较。 表达式

30

可能会返回一个字符串。因此,您无法直接将其与数字pandas.Series.str.len()进行比较。如果您想比较条目的长度,可以使用pandas.to_numeric操作,因为您可以看到cycle

如果此字段应该包含整数,您可以使用here方法(str)将其从int投射到<input type="file" accept="image/*" id="imguploader">

答案 1 :(得分:3)

首先请确保Survey_df_clean ['text']的所有值都相同,如果要转换为数字,请执行以下操作:

.key

然后执行

https://myproject.com/

答案 2 :(得分:0)

survey_df_clean['text']在某些位置可能具有NAN或str值。 找出:

survey_df_clean['text'].isnull().sum()

如果是,请先照顾好他们,然后申请

print (survey_df_clean[survey_df_clean['text']>30].shape)

答案 3 :(得分:0)

这是因为“文本”列中的值属于str类型,并且您正在将str与int进行比较。 您可以快速检查一下“文本”列的类型。

print(type(survey_df_clean['text'][:1][0]))

为进行比较,您可以按照以下步骤进行操作

survey_df_clean[survey_df_clean['text'].astype(int)>30]

答案 4 :(得分:0)

尝试使用该条件时,我有相同的错误消息。令我着迷的是,同一命令已在另一台笔记本电脑上正确运行。

不同之处在于我读取csv文件的方式。这是一件麻烦事:

df=pd.read_csv('data.csv')

当我输入十进制参数时,它起作用了:

df=pd.read_csv('data.csv', decimal=',')

很显然,这取决于数据的组织方式。 ;)