Python pandas:筛选以指定字符开头行及之后所有行的方法
筛选无列名单列DataFrame中指定起始行到末尾的数据
先复现场景
import pandas as pd # 模拟从PDF提取的无列名单列DataFrame sample_data = ["random text", "irrelevant line", "hellodddd", "content after target", "final line"] df = pd.DataFrame(sample_data)
核心实现代码
# 定义要匹配的起始字符 target_start = "hello" # 定位第一个符合条件的行索引 start_index = df[df[0].str.startswith(target_start)].index[0] # 切片获取目标区间数据 filtered_result = df.loc[start_index:] # 输出结果 print(filtered_result)
关键逻辑说明
- 因为DataFrame没有列名,直接用
df[0]访问唯一的列 str.startswith(target_start)生成布尔序列,标记每行是否以指定字符开头.index[0]提取第一个匹配行的索引(若有多个匹配行,仅取第一个作为起始点)loc[start_index:]通过索引切片直接获取从起始行到末尾的所有数据
容错处理(可选)
如果不确定是否存在匹配行,可添加判断避免报错:
match_rows = df[df[0].str.startswith(target_start)] if not match_rows.empty: start_index = match_rows.index[0] filtered_result = df.loc[start_index:] else: # 无匹配时的处理,比如返回空DataFrame或原数据 filtered_result = pd.DataFrame()
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

