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

如何在Pandas中筛选第二列包含'$$$'的行(非CSV读取场景)

筛选文本文件特定行生成DataFrame

输入文件内容 (input.txt)

header
 040525 $$$$$   9999         12345
   random stuff
 040525 $$$$$   8888         12345
 040525 $$$$$   7777         12345
           random stuff
 040525 $$$$$   6666         12345
footer

现有预处理代码

data_list = []
with open('input.txt', 'r') as data:
    for line in data:
        data_list.append(line.strip().split()) 
df = pd.DataFrame(data_list)

需求

仅将第二列包含$$$的行加入列表,最终生成如下结构的DataFrame:

0      1     2      3
0  40525  $$$$$  9999  12345
1  40525  $$$$$  8888  12345
2  40525  $$$$$  7777  12345
3  40525  $$$$$  6666  12345

修改后的代码

import pandas as pd

data_list = []
with open('input.txt', 'r') as data:
    for line in data:
        split_line = line.strip().split()
        # 检查行分割后至少有2个元素,且第二列包含$$$
        if len(split_line) >= 2 and '$$$' in split_line[1]:
            data_list.append(split_line) 
df = pd.DataFrame(data_list)
print(df)

代码说明

  • 先对每行做分割处理得到split_line,避免重复计算
  • 添加判断条件:确保分割后的列表长度足够(避免索引越界),同时第二元素(索引为1)包含$$$,只有满足条件的行才会被加入data_list
  • 最终生成的DataFrame只会保留符合要求的行,自动过滤掉header、footer和随机内容行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 09:26:03