Python DataFrame中如何将日期的点替换为横杠?
解决DataFrame日期列符号替换异常问题
你遇到的问题是因为pandas的Series.replace()方法默认逻辑和预期不符:
直接使用replace('.','-')时,若触发正则匹配(部分场景下为默认行为),.作为正则通配符会匹配任意单个字符,导致每个字符都被替换成-,最终出现一串横线。
可行解决办法
方法1:使用str.replace()(推荐)
这是pandas中处理字符串子串替换的专用方法,默认替换元素内所有匹配的子串,无需处理正则转义:
df2['DATE'] = df2['DATE'].str.replace('.', '-')
方法2:修正replace()的正则参数
如果坚持使用replace(),需要转义.(让它作为普通点号匹配)并明确开启正则匹配:
df2['DATE'] = df2['DATE'].replace(r'\.', '-', regex=True)
可选优化:转为标准日期类型
替换完成后,建议将该列转为标准日期格式,方便后续时间相关操作:
import pandas as pd df2['DATE'] = pd.to_datetime(df2['DATE'], format='%d-%m-%Y')
内容的提问来源于stack exchange,提问作者KChemist
相关产品推荐
相关产品推荐

