You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理Pandas字符串序列:截取小数后保留8位字符串其余置空

Pandas 字符串序列处理:保留指定长度字符串,其余返回空值

问题背景

现有Pandas字符串序列:

import pandas as pd
s = pd.Series(["12345678.0","45678912.0", "0", "2983129416.0", "62441626.0"])

已通过以下代码截取小数点前的部分:

result = s.str.split(".", 1, expand=True)[0]

需求:保留截取后长度为8的字符串,其余位置返回空字符串"",需保留原序列的行数与顺序,不能仅筛选符合条件的行,预期结果为:

pd.Series(["12345678","45678912", "", "", "62441626"])

实现方法

方法1:使用numpy.where条件判断

通过str.len()获取每个字符串的长度,结合numpy.where做条件替换:

import numpy as np
final_result = pd.Series(np.where(result.str.len() == 8, result, ""))

方法2:使用Pandas原生mask方法

mask方法会将满足条件的元素替换为指定值,这里把长度不等于8的元素替换为空字符串:

final_result = result.mask(result.str.len() != 8, "")

结果验证

两种方法均会生成符合预期的序列,保留原行数与顺序,仅将长度非8的元素替换为空字符串,不会过滤行。

内容的提问来源于stack exchange,提问作者Eve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:55:16