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

如何筛选Pandas DataFrame中B列所有元素≥0.5的行?

Pandas筛选列表列中所有元素满足条件的行

先给出原始DataFrame的构造代码:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2],
    'B': [[0.2, 0.8], [0.6, 0.9]]
})

需求是筛选出B列中所有元素均≥0.5的行,这里有两种实用方法,可根据数据规模选择:

方法一:简洁直观的apply+all(适合小规模数据)

直接对B列的每个列表做全量检查,代码简洁易懂:

new_df = df[df['B'].apply(lambda x: all(num >= 0.5 for num in x))]

执行后得到的new_df就是目标结果:

A          B
1  2  [0.6, 0.9]

方法二:numpy向量化操作(适合大规模数据)

如果数据集很大,Python层面的循环会拖慢速度,用numpy的向量化操作能大幅提升效率:

import numpy as np

# 将B列的列表转为二维numpy数组
arr = np.array(df['B'].tolist())
# 生成布尔掩码:判断每行所有元素是否≥0.5
mask = (arr >= 0.5).all(axis=1)
# 筛选符合条件的行
new_df = df[mask]

两种方法都能得到预期结果,小规模数据选方法一足够,大数据集优先考虑方法二。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:47:03