如何提取Pandas DataFrame列中的首个字符串序列?
解决方法
你的代码问题在于x[0]是取字符串的第一个字符,而非逗号分隔后的首个完整子串。以下是两种正确实现方式:
方法1:使用Pandas字符串方法(推荐)
这种方式更简洁且性能更优:
df['ColumnB'] = df['ColumnA'].str.split(',', n=1).str[0].str.strip()
str.split(',', n=1):将每行字符串按逗号分割为两部分(n=1限制仅分割一次,提升效率)str[0]:提取分割后的第一个子串str.strip():去除子串前后的空格(处理类似" bc"这种带前导空格的情况)
方法2:修正你的lambda映射写法
如果你偏好使用map,可以修改为:
df['ColumnB'] = df['ColumnA'].map(lambda x: x.split(',')[0].strip())
这里x.split(',')会把字符串按逗号分割成列表,取第一个元素后再用strip()清理空格。
验证效果
运行上述代码后,你的DataFrame会生成符合预期的ColumnB:
| Column A | Column B |
|---|---|
| ab, bce, bc | ab |
| bc, abcd, ab | bc |
| ab, cd, abc | ab |
内容的提问来源于stack exchange,提问作者fr3dr1k
相关产品推荐
相关产品推荐

