![](/img/trans.png)
[英]Python: How to change a UTC timestamp from mm/dd/yyyy hh:mm:ss AM to dd/mm/yyyy hh:mm:ss AM
[英]How to replace regex pattern hh:mm:ss with hh:mm in python
如果這是一個簡單的問題,我很抱歉,但我有一個 csv 文件,時間格式如下: hh:mm:ss
該文件的摘錄如下所示:
column_name
00:00:00
01:00:00
02:00:00
03:00:00
...
23:00:00
00:00:00
我有以下正則表達式來匹配所有這些時間[0-9]{2}[:][0-9]{2}[:][0-9]{2}
我的問題是如何在 python 腳本中刪除冒號和秒( :ss
),從根本上將格式從hh:mm:ss
更改為hh:mm
?
我設法通過使用這行代碼將所有-
更改為/
:
df['column_name'] = df['column_name'].str.replace('-', '/')
我嘗試使用這條線:
df['column_name'] = [re.sub(r'[0-9]{2}[:][0-9]{2}[:][0-9]{2}', r'[0-9]{2}[:][0-9]{2}', str(x)) for x in df['column_name']]
但這一直更改為[0-9]{2}[:][0-9]{2}
我也嘗試只使用切片,例如[:-3]
但我無法讓它工作:
df['column_name'] = [re.sub(r'[0-9]{2}[:][0-9]{2}[:][0-9]{2}', [:-3], str(x)) for x in df['column_name']]
任何幫助將不勝感激,謝謝
您可以使用str對字符串進行切片:
df['column_name'] = df['column_name'].str[:-3]
或者:
df['column_name'] = df['column_name'].str.rsplit(':', 1).str[0]
如果您想使用正則表達式來解決這個問題,請使用捕獲組:
df.column_name.str.replace(r'(\d{2}):(\d{2}):(\d{2})', r'\1:\2', regex=True)
要定義捕獲組,請將其括在括號中。 然后,您可以使用組索引(從一個開始)引用捕獲的字符串。
另外,需要注意的是,由於這些組被稱為\<group-number>
,因此需要使用原始正則表達式字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.