Python数据帧:无序类型:str()>;int()

Python数据帧:无序类型:str()>;int(),python,string,pandas,int,Python,String,Pandas,Int,我已经下载了《Python for Data Analysis》一书中提到的文件,并且正在浏览第278页中提到的示例FEC数据库。我在运行命令时遇到以下类型错误。我的版本:Python 3.4;熊猫:0.14.0。操作系统:Windows 8 >>> fec=pd.read_csv('c:\python\P00000001-ALL.csv') >>> (fec.contb_receipt_amt > 0).value_counts() >>&

我已经下载了《Python for Data Analysis》一书中提到的文件,并且正在浏览第278页中提到的示例FEC数据库。我在运行命令时遇到以下类型错误。我的版本:Python 3.4;熊猫:0.14.0。操作系统:Windows 8

>>> fec=pd.read_csv('c:\python\P00000001-ALL.csv')
>>> (fec.contb_receipt_amt > 0).value_counts()
>>> TypeError: unorderable types: str() > int()
但不仅仅是这个数据集。我使用的任何数据集都有类似的问题。Int(Number)数据类型与其他数据类型一样作为对象导入,当对它们运行任何与数字(>0)的比较时,我会得到上面的错误。你的工作是什么?我尝试使用dtype选项导入,该选项会抛出一个错误,表明int64或Float64不可用。我相信有一个正确的方法。如何使用正确的数据类型加载数据帧


非常感谢您的帮助。

我因一些日期不一致而出现此错误。我先用改型法解决了这个问题

尝试:


然后重试计数。

您已经推断出将字符串与int进行比较是无效的,它应该从调用
read\u csv
中推断出数据类型,这有点奇怪,如果您转换类型会发生什么:
fec.contb\u receipt\u amt=fec.contb\u receipt\u amt.astype(np.64)
它能工作吗?我注意到您没有在路径中逃逸斜杠,加载是否正确?请尝试
fec=pd.read\u csv(r'c:\python\p0000001-ALL.csv')
我刚刚针对github repos测试了您的代码:它工作正常,所以我不知道您的问题是什么,您能发布一个到您的数据的链接,以便我有一个look@EdChum说得对,但也没什么区别,由于
\p
\p
都不是有效的转义序列,因此将按原样处理。Ed和团队,非常感谢您的回答。我最初在第一次加载时遇到以下错误。“DtypeWarning:列(6,11,12)具有混合类型。请在导入时指定DtypeOption或设置low_memory=False。”但我忽略了,因为我的amount列是第9列,警告是关于其他列的。我按照建议执行了以下命令>>>fec.contb_receipt_amt=fec.contb_receipt_amt.astype(np.float64),得到了以下错误。。ValueError:无法将字符串转换为浮点:“28-JUN-12”
fec[[contb_receipt_amt]] = fec[[contb_receipt_amt]].astype(str)