TypeError:无法将<type'str'>type与Series进行比较

2024-10-04 03:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试使用字符串筛选数据帧时,会出现以下错误

TypeError: Could not compare <type 'str'> type with Series

这是我的准则

data = pd.read_csv('data.csv')
fildata = data[(data['cat1'] == 'FALSE') & (data['cat2'] != '') & (data['cat3'] == 'FALSE')]

编辑1:

以下是数据的外观

^{pr2}$

编辑2:

但这为什么有用呢?在

data1 = pd.DataFrame({'cat1':[1,2,3,4],'cat2':[2,3,1,4],'cat3':[3,1,2,4]})

fildata = data1[(data1['cat1'] == 1) & (data1['cat2'] != 0) & (data1['cat3']== 3)]

这导致:

cat1 cat2 cat3 0 1 2 3

编辑3:

我想问题出在类型上cat1'和'cat2'属于'bool'类型


Tags: csv数据字符串false编辑类型datatype
1条回答
网友
1楼 · 发布于 2024-10-04 03:29:00

以下几点对我有用:

In [114]:

temp = """count,word,cat1,cat2,cat3
1021,.,FALSE,,FALSE
825,the,TRUE,the,FALSE
693,and,TRUE,and,FALSE
647,of,TRUE,of,FALSE
646,",",FALSE,,FALSE
435,to,TRUE,to,FALSE
353,will,TRUE,will,FALSE
297,in,TRUE,in,FALSE
274,be,TRUE,be,FALSE"""
data = pd.read_csv(io.StringIO(temp))
fildata = data[(data['cat1'] == False) & (data['cat2'].isnull() ) & (data['cat3'] == False)]
In [115]:

fildata
Out[115]:
   count word   cat1 cat2   cat3
0   1021    .  False  NaN  False
4    646    ,  False  NaN  False

[2 rows x 5 columns]

问题是字符串FALSE/TRUE是由read_csv解释的布尔数据类型:

^{2}$

所以您的比较应该针对这个类型,而不是字符串'FALSE'

相关问题 更多 >