如何从Pandas DataFrame中提取指定开头的字符串?
解决Pandas DataFrame提取以CA开头字符串的问题
以下是几种可靠的实现方法,附代码示例:
方法1:使用str.startswith()筛选(最直观)
这个方法专门用于判断字符串前缀,无需正则表达式,代码简洁:
import pandas as pd # 构造示例数据 data = {'Column1': ['CA_1', 'CA_2', 'CA_3', 'BA_1', 'BA_2', 'BA_3', 'CA_4', 'BA_12', 'CA_6']} df = pd.DataFrame(data) # 筛选Column1以CA开头的行 filtered_df = df[df['Column1'].str.startswith('CA')]
执行后filtered_df将只保留Column1值为CA_1、CA_2、CA_3、CA_4、CA_6的行。
方法2:使用str.contains()正则匹配
如果需要更灵活的正则规则,用^CA表示匹配以CA开头的字符串(^是正则里的行首锚定符):
filtered_df = df[df['Column1'].str.contains(r'^CA', regex=True)]
若之前使用contains失败,大概率是没加^,导致匹配到字符串中间包含CA的情况。
方法3:使用str.extract()提取并过滤
如果需要从Column1中提取符合条件的内容(比如字段内有多个字符串的场景),可以用提取+去空值的方式:
# 提取以CA开头的完整字符串,不符合的会返回NaN df['CA_values'] = df['Column1'].str.extract(r'(^CA.*)') # 过滤掉空值行 filtered_df = df.dropna(subset=['CA_values'])
内容的提问来源于stack exchange,提问作者DEB
相关产品推荐
相关产品推荐

