如何在Pandas中按ID-11xxxx索引模式使用df.loc筛选行
数据筛选需求及实现示例
将输入数据中的OBID列设为DataFrame索引后,使用df.loc方法筛选出索引符合ID-11xxxx格式的所有行。相关输入数据、期望输出及可复现代码如下:
输入数据
OBID NAME VALUE 0 ID-110503 Name 1 39.0 1 ID-110504 Name 2 243.5 2 ID-225930 Name 3 3212.0 3 ID-339630 Name 4 350.0 4 ID-117742 Name 5 785.0
期望输出
NAME VALUE OBID ID-110503 Name 1 39.0 ID-110504 Name 2 243.5 ID-117742 Name 5 785.0
可复现代码
import pandas as pd from io import StringIO s = """OBID NAME VALUE ID-110503 Name 1 39 ID-110504 Name 2 243.5 ID-225930 Name 3 3212 ID-339630 Name 4 350 ID-117742 Name 5 785 """ # 读取数据并设置OBID为索引 df = pd.read_csv(StringIO(s), sep='\t') df.set_index('OBID', inplace=True) # 使用df.loc结合正则匹配筛选符合格式的行 filtered_df = df.loc[df.index.str.match(r'ID-11\d{4}')] print(filtered_df)
内容的提问来源于stack exchange,提问作者user19956605
相关产品推荐
相关产品推荐

