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

如何根据指定行数值条件筛选DataFrame列?附示例

Pandas保留指定行数值大于阈值的列

方法核心思路

先定位目标行,筛选出该行中数值满足条件的列名,再用这些列名对原DataFrame切片,保留所有行的对应列。


步骤与代码示例

首先构造示例中的原始DataFrame:

import pandas as pd

# 构造数据
data = {
    'T': [0.207906, 0.196817, 0.228247, 0.303633, 0.100477],
    'TU': [0.211786, 0.208811, 0.236007, 0.308214, 0.099930],
    'TUXT': [0.145491, 0.149292, 0.154773, 0.231662, 0.075825],
    'TEXT': [0.125727, 0.112480, 0.126083, 0.168093, 0.048684],
    'TEST': [0.230134, 0.213108, 0.247899, 0.317019, 0.104480]
}
df = pd.DataFrame(data, index=pd.date_range('2022-10-02', periods=5, freq='W'))

1. 保留最后一行数值大于0.1的列

# 获取最后一行数据
last_row = df.iloc[-1]
# 筛选数值>0.1的列名
filtered_cols = last_row[last_row > 0.1].index
# 切片原DataFrame
result_last_row = df[filtered_cols]
print(result_last_row)

输出结果:

T      TEST
2022-10-02  0.207906  0.230134
2022-10-09  0.196817  0.213108
2022-10-16  0.228247  0.247899
2022-10-23  0.303633  0.317019
2022-10-30  0.100477  0.104480

2. 保留指定索引行(如'2022-10-30')数值大于0.1的列

# 指定目标索引
target_index = '2022-10-30'
# 获取目标行数据
target_row = df.loc[target_index]
# 筛选列名
filtered_cols = target_row[target_row > 0.1].index
# 切片原DataFrame
result_target_row = df[filtered_cols]
print(result_target_row)

输出结果与上述完全一致。


关键细节

  • 用iloc[-1]快速定位最后一行,loc[索引值]精准定位指定行
  • 布尔索引直接筛选目标行中符合条件的列,无需复杂循环
  • 最终通过列名列表切片,保留所有行的目标列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:40:27