如何移除DataFrame列中字符串前缀START=?当前代码返回NaN
移除DataFrame中START列的前缀问题解决办法
你的DataFrame的START列值格式如下:
START=20220605104039.163068 START=20220605104045.818461 START=20220605104051.500539 START=20220605104053.444575
尝试用str.split(sep,[1])处理后返回全NaN,是因为str.split的第二个参数n需要是整数,而非列表[1],写法错误导致失效。以下是几种可行的解决方法:
方法一:修正split用法
用n=1限制只分割一次,然后提取分割后的第二个元素:
df['START'] = df['START'].str.split('=', n=1).str[1]
方法二:直接替换前缀
用str.replace直接移除固定前缀,效率更高:
df['START'] = df['START'].str.replace('START=', '', regex=False)
注:regex=False可以避免将=当作正则表达式符号,提升处理速度。
方法三:正则提取目标内容
如果时间格式固定为数字+.+数字,可以用正则提取:
df['START'] = df['START'].str.extract(r'(\d+\.\d+)', expand=False)
额外注意事项
如果执行后仍返回NaN,可能是START列的元素不是字符串类型,需要先转换为字符串再处理:
df['START'] = df['START'].astype(str).str.replace('START=', '', regex=False)
内容的提问来源于stack exchange,提问作者Muhammad Siddique
相关产品推荐
相关产品推荐

