第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從日期/時間的字符串信息中提取

從日期/時間的字符串信息中提取

茅侃侃 2022-12-06 16:35:45
我有一些文本通常以以下內(nèi)容開頭:“12 minutes ago - There was a meeting...”“2 hours ago - Apologies for being...”“1 day ago - It is a sunny day in London...”等等?;旧衔矣幸韵滦畔ⅲ篗inutes HoursDay (starting from today)我想將此類信息轉(zhuǎn)換為有價值的時間序列信息,以便提取這部分并從中創(chuàng)建一個新列(日期時間)。在我的數(shù)據(jù)集中,我有一列(日期),其中我已經(jīng)有執(zhí)行研究的日期(例如,今天),格式為:26/05/2020 和提交搜索的時間(例如上午 8:41 ). 因此,如果文本以“12 分鐘前”開頭,我應(yīng)該:26/05/2020 - 8:29 (datetime format in Python)對于其他人:26/05/2020 - 6:4125/05/2020 - 8:41重要的是要有一些東西(字符串、數(shù)字、日期格式),我可以將其繪制為時間序列(我想看看在時間間隔方面發(fā)布了多少文本)。關(guān)于如何做到這一點的任何想法?
查看完整描述

2 回答

?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊

如果格式保持簡單:<digits> <unit> ago ...用"^(\d+) (\w+) ago".


然后,一旦你('minutes', '12')將這些傳遞給timedelta它接受每個單元作為關(guān)鍵字參數(shù)timedelta(minutes=12),你將通過傳遞一個映射來做到這一點**{unit:value}


def parse(content):

    timeparts = re.search(r"^(\d+) (\w+) ago", content)

    if not timeparts:

        return None, content

    unit = timeparts.group(2).rstrip('s') + 's' # ensure ends with 's'

    #return datetime.now()-timedelta(**{unit:int(timeparts.group(1))})           # Now date

    return datetime(2020,5,26,8,0,0)-timedelta(**{unit:int(timeparts.group(1))}) # Fixed date

演示


values = ["12 minutes ago - There was a meeting...","2 hours ago - Apologies for being...","1 day ago - It is a sunny day in London..."]


for value in values:

  res = parse(value)

  print(res)



2020-05-26 07:48:00

2020-05-26 06:00:00

2020-05-25 08:00:00


查看完整回答
反對 回復(fù) 2022-12-06
?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

您應(yīng)該為此使用自然語言處理庫,例如spaCY或 NLTK

這是tokenization來自上面鏈接的示例,顯示了 spacY 如何分解句子:

http://img1.sycdn.imooc.com//638eff020001975606380476.jpg

查看完整回答
反對 回復(fù) 2022-12-06
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號