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

如何在Pandas中删除某列含连续1111的行?解决类型报错问题

问题:删除Pandas数据集中包含连续四个1的行

问题描述

我的Pandas数据集格式如下:

col1
11111112322
15211114821
25482136522
45225625656
11125648121

需要删除所有包含连续四个1111的行,期望结果:

25482136522
45225625656
11125648121

尝试的代码

data = df[df["col1"].str.contains("1111")==False]

报错信息

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    data1_1 = section1[section1["col1"].str.contains("111111")==False]
  File "C:\Users\henry\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\generic.py", line 5575, in __getattr__
    return object.__getattribute__(self, name)
  File "C:\Users\henry\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\accessor.py", line 182, in __get__
    accessor_obj = self._accessor(obj)
  File "C:\Users\henry\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\strings\accessor.py", line 177, in __init__
    self._inferred_dtype = self._validate(data)
  File "C:\Users\henry\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\strings\accessor.py", line 231, in _validate
    raise AttributeError("Can only use .str accessor with string values!")
AttributeError: Can only use .str accessor with string values!. Did you mean: 'std'?

报错原因

报错提示明确说明:.str访问器只能用于字符串类型的值,而你的col1列是数值类型(如int64),无法直接调用字符串方法。

解决方案

方法一:先转换列类型为字符串,再过滤

# 将col1转换为字符串类型
df["col1"] = df["col1"].astype(str)
# 筛选不包含连续四个1的行(~表示取反,替代==False)
data = df[~df["col1"].str.contains("1111")]

方法二:过滤时临时转换类型(不修改原数据集)

data = df[~df["col1"].astype(str).str.contains("1111")]

运行上述任意一种方法后,得到的data即为符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:23:36