如何使用Pandas判断单元格指定位置字符并筛选符合条件的行
Pandas 筛选实现方案
首先明确计数规则:你提到的「uid列第9位字符」是从1开始的自然计数,而Python/pandas的字符串索引默认从0开始,因此第9位对应的索引位置为8。
方法1:布尔索引(最通用)
先确保uid列为字符串类型,再通过str访问器提取对应位置字符做比较,筛选符合条件的行:
# 可选:若uid列不是字符串类型,先执行转换 df['uid'] = df['uid'].astype(str) df1 = df[df['uid'].str[8] == 'L']
- 若存在长度不足9位的uid,
str[8]会返回NaN,这类行会在比较时自动被排除,无需额外处理。
方法2:query 函数(写法更简洁)
df1 = df.query("uid.str[8] == 'L'")
两种方法输出的df1和你给出的预期内容完全一致,仅保留3条符合条件的记录。
内容的提问来源于stack exchange,提问作者Dcook
相关产品推荐
相关产品推荐

