gpt4 book ai didi

python - pandas str.replace 什么也得不到

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:53 24 4
gpt4 key购买 nike

我运行一个程序:

# encoding=utf-8
import pandas
df=pandas.DataFrame([['11-20','a',1],['10-20  更新于16-10-20 18:07','b',2],['15-12-27','c',3],['15-10-26  更新于10-26 23:52','d',4]],columns=['date','name','type'])
df.date=df.date.str.replace('^(\d+)(-)(\d+)((-)\d+){0,1}(.*)','\1\2\3\4')
print df

这是结果:

    date name  type
0 a 1
1 b 2
2 c 3
3 d 4

我要得到结果:

       date name  type
0 11-20 a 1
1 10-20 b 2
2 15-12-27 c 3
3 15-10-26 d 4

我还在 https://regex101.com/r/apIT0O/8 上检查了这个正则表达式.但是不知道问题出在哪里

最佳答案

您需要使替换组文字化:

df.date.str.replace('^(\d+)(-)(\d+)((-)(\d+)){0,1}(.*)',r'\1\2\3\4')

#0 11-20
#1 10-20
#2 15-12-27
#3 15-10-26
#Name: date, dtype: object

或者你可以使用双反斜杠:

df.date.str.replace('^(\d+)(-)(\d+)((-)(\d+)){0,1}(.*)', '\\1\\2\\3\\4')

在不使用正则表达式的情况下,您还可以在空白处拆分并取第一个元素:

df.date.str.split(" ").str[0]

#0 11-20
#1 10-20
#2 15-12-27
#3 15-10-26
#Name: date, dtype: object

关于python - pandas str.replace 什么也得不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com