python dataframe 报错 invalid type comparison

python 报错 invalid type comparison 解决办法

报错信息:

TypeError: invalid type comparison

代码如下:

import pandas as pd
tst_data = 'tst_data.txt'
tst_df = pd.read_csv(tst_data, sep='\t')
tst_df
tst_df[tst_df['Head2'] == "False"]

具体报错:
在这里插入图片描述

要筛选的列的值类型转换:字符串类型转换为Bool值:

tst_df[tst_df['Head2'] == False]

在这里插入图片描述

可通过df.dtypes 查看各列默认值的类型:
在这里插入图片描述

如果想改变该列的数据类型,可使用astype(type): type可取值 int/float/str
在这里插入图片描述
也可同时改变所有列,为同一种数据类型:
在这里插入图片描述

总结:
在筛选某列指定值时,需要先明确该列值的类型,如果类型与默认不符,则会报错invalid type comparison。可通过修改筛选时的值类型,或者在定义dataframe时,修改指定列的数据类型。

一般pandas读取csv文件,会自动识别数据。

  • 如果某列的数据都是相同类型(如示例,都是布尔值),则会默认为某种类型;
  • 如果某列既有布尔值,也有其他字符串类型的,则会把该列定义为Object类型;
  • 如果想将布尔值类型进行转换,可使用 serise.astype() [转换某一列] 或 datafreame.astype() [转换所有列] 。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值