You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas筛选DataFrame列值在指定列表中的行时得到空表求助

解决Pandas中isin()返回空DataFrame的问题

嘿,刚接触Python和Pandas碰到这种问题太正常了,我来帮你排查下!

你的筛选逻辑本身是完全正确的,但返回空DataFrame几乎可以肯定是数据类型不匹配导致的——比如你的Col4列里的数值其实是字符串类型(比如存储为'1'、'3'),而你用来筛选的列表List = [1,3,5]里是整数类型,两者类型不统一,isin()自然匹配不到任何结果。

第一步:验证数据类型

先检查下Col4的数据类型,确认问题:

print(df['Col4'].dtype)

如果输出是object,说明这一列是字符串类型;如果是int64才是整数类型。你也可以直接查看列内容:

print(df['Col4'])

要是看到输出里的元素带引号(比如'1'),那就实锤是类型问题了。

两种解决方案

方案1:把筛选列表转换成字符串类型

如果不想修改原DataFrame的列类型,可以把列表里的元素改成字符串:

List = ['1', '3', '5']
new_df = df[df['Col4'].isin(List)]

方案2:把Col4转换成整数类型

如果Col4里的内容都是可以转成整数的(没有字母或其他非数字内容),可以直接转换列类型后再筛选:

df['Col4'] = df['Col4'].astype(int)
new_df = df[df['Col4'].isin([1,3,5])]

小提醒:如果Col4里有无法转成整数的内容,第二种方法会抛出错误,这时候优先选方案1更稳妥。

按照上面的方法调整后,你应该就能得到想要的筛选结果啦!

内容的提问来源于stack exchange,提问作者Maki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:23:53