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

如何使用Pandas移除全为1或1的组合的DataFrame行?

解决方法

你的代码存在两个问题:

  • 逻辑方向错误:当前代码标记的是「行内任意一列是全1组合」的行并移除,但需求是要移除「所有列都是全1组合」的行
  • 未处理空格:像'1, 1'这类带空格的字符串,拆分后会得到['1', ' 1'],直接判断x == '1'会因为空格导致判断失效

下面是修正后的完整代码:

import pandas as pd

data = {'A': ['1, 1, 1', '1', '2', '3', '1'],
        'B': ['1', '1,1,1,1', '2', '4', '1'],
        'C': ['1, 1', '2', '3', '5', '1']}
df = pd.DataFrame(data)

# 修正判断逻辑:拆分后去除元素空格,再检查是否全为'1'
def is_all_ones(value):
    return all(x.strip() == '1' for x in value.split(','))

# 生成掩码:标记所有列都是全1组合的行(这些是需要移除的)
mask = df.apply(lambda row: all(is_all_ones(val) for val in row), axis=1)
# 取反保留符合需求的行
df_filtered = df[~mask]

# 查看结果
print(df_filtered)

运行后输出结果如下:

A          B  C
1    1  1,1,1,1  2
2    2          2  3
3    3          4  5

如果需要将结果转回字典格式,执行df_filtered.to_dict('list')即可得到你期望的字典结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:47:38