我有一个DataFrame
,其中包含一列我希望转换为日期格式的字符串值。在R中,我通常将其分解为一系列步骤,将??:??
替换为12:00
,剥离时间,将其追加到最后并使用POSIX函数进行转换。
我试图用更多 pythonic 方式在Python中复制它。
以下是我DataFrame
(150,000行)的Series
index date
0 21/08/2001 10:20
1 19/09/2005 9:50
2 ??:?? 04-Jun-01
3 16/08/2004 7:15
4 ??:?? 04-Jan-01
5 23/01/2001 9:25
6 24/01/2001 11:16
7 ??:?? 05-Feb-01
8 24/01/2001 8:30
9 24/01/2001 15:15
以下是我的尝试(我已经将摘录称为tmp
。):
我以为我可以使用列表推导和正则表达式替换如下:
[re.sub('\\?\\?:\\?\\?', '12:00', tmp) for i in tmp[i]]
我想要做的是将??:??
替换为12:00
,然后对其进行概括,以便我可以将其与tmp.apply
一起使用。
感谢任何建议。
答案 0 :(得分:1)
您可以使用Series.str.replace()
:
date = """21/08/2001 10:20
19/09/2005 9:50
??:?? 04-Jun-01
16/08/2004 7:15
??:?? 04-Jan-01
23/01/2001 9:25
24/01/2001 11:16
??:?? 05-Feb-01
24/01/2001 8:30
24/01/2001 15:15""".split("\n")
s = pd.Series(date)
s.str.replace("\?\?:\?\?", "12:00")