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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 Python 從文本(CSV 文件中)提取數(shù)據(jù)

使用 Python 從文本(CSV 文件中)提取數(shù)據(jù)

湖上湖 2023-09-19 17:19:19
我正在幫助一個(gè)狗救援組織分析他們收到的收養(yǎng)申請(qǐng)。所有申請(qǐng)均通過在線系統(tǒng)提交,每個(gè)申請(qǐng)都會(huì)獲得一個(gè)自動(dòng)生成的表格 ID。然后,這些申請(qǐng)將被分配給不同的志愿者來處理。大多數(shù)信息都很簡(jiǎn)單,我可以使用 pandas 輕松處理。分析的一部分是關(guān)于每個(gè)應(yīng)用程序的處理時(shí)間。這意味著從申請(qǐng)創(chuàng)建之日(表格狀態(tài)為“已提交”)到狗被收養(yǎng)(表格狀態(tài)為“已收養(yǎng)”)。當(dāng)我導(dǎo)出表單數(shù)據(jù)時(shí),狀態(tài)更改和一般注釋混合在一個(gè)名為“注釋(內(nèi)聯(lián))”的標(biāo)題下。以下是一個(gè)應(yīng)用程序的狀態(tài)更改/評(píng)論的簡(jiǎn)短示例。文本遵循一些基本模式。一般評(píng)論:CURRENT_PERSON(名字)寫于日期:文本志愿者變更:CURRENT_PERSON(名字)于 DATE 寫入:已將表格分配給 NEW_PERSON(名字)表單狀態(tài)更改:CURRENT_PERSON(名字)于日期寫入:狀態(tài)已從 CURRENT_STATUS 更改為 NEW_STATUS我是 python 新手(~3mos)。我想到的第一件事是使用 python 和正則表達(dá)式來解析文本,提取數(shù)據(jù),并將它們分為兩組(一組用于一般注釋,一組用于狀態(tài)更改)。這需要一些時(shí)間,因?yàn)槲胰栽趯W(xué)習(xí),但似乎是可行的。最終的結(jié)果將會(huì)是這樣的。相同的狀態(tài)可以被分配多次,所以我需要給他們一個(gè)號(hào)碼。然后我可以將處理時(shí)間計(jì)算為 Adopted-01 和 Submitted-01 之間的天數(shù)。然而,從我到目前為止所了解到的情況來看,使用這種類型的迭代(for 循環(huán))似乎很慢并且不推薦。到目前為止,我大約有 1500 份表格,而且這個(gè)數(shù)字只會(huì)增加。我應(yīng)該繼續(xù)使用 python 和 re 嗎?還是有更好的方法來獲得我所描述的內(nèi)容?我堅(jiān)信有一種更好的方法,只是我還不夠了解。非常感謝您的建議。更新示例數(shù)據(jù)位于 CSV 文件中,此處位于 XML 文件中你會(huì)在那里找到四個(gè)名字:Jenny White、Rose Burk、Kerry James、Henry Woods。我意識(shí)到文本 CSV 文件并不像我想象的那么干凈。評(píng)論或狀態(tài)更改之間沒有空格。盡管存在模式,但并不總是一致(僅名字與全名)。我更新了模式。導(dǎo)出為 CSV 后,您將看到以下內(nèi)容Henry 于 2020 年 9 月 22 日寫道:已將表格分配給 Rose Burk Rose 于 2020 年 9 月 22 日寫道:已發(fā)送介紹電子郵件。成為Henry 于 2020 年 9 月 22 日寫道:已將表格分配給 Rose BurkRose 于 2020 年 9 月 22 日寫道:已發(fā)送介紹電子郵件?,F(xiàn)在我還需要更多地清理數(shù)據(jù)。謝謝參觀。
查看完整描述

1 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

所以我想出了如何使用正則表達(dá)式來根據(jù)模式處理注釋。

下面的這個(gè)可以獲取所有不同的日期和所有狀態(tài),因?yàn)樗鼈兌加小案臓顟B(tài)”部分,并且我可以將各個(gè)組與舊狀態(tài)還是新狀態(tài)進(jìn)行匹配。

regex = r"(\d{1,2}\/\d{1,2}\/\d{4})\:\sChanged\sStatus\sfrom\s([A-Z][a-z]+(\s[a-z]+)?(\s[A-Z][a-z]+)?)\sto\s([A-Z][a-z]+(\s[a-z]+)?(\s[A-Z][a-z]+)?)"

如果我只關(guān)注“領(lǐng)養(yǎng)”,這個(gè)就可以獲取我需要的日期。

regex = r"(\d{1,2}\/\d{1,2}\/\d{4})\:\sChanged\sStatus\sfrom\s([A-Z][a-z]+(\s[a-z]+)?(\s[A-Z][a-z]+)?)\sto\sAdopted(?!\sElsewhere)

另外,我不需要使用 for 循環(huán)。在關(guān)注采用日期的特定情況下,我可以使用以下命令將采用日期添加到 Jupyter 筆記本中的數(shù)據(jù)框中。

df['Adopted']=df['Comments (inline)'].str.extract(r'(\d{1,2}\/\d{1,2}\/\d{4})\:\sChanged\sStatus\sfrom\s[A-Z][a-z]+(\s[a-z]+)?(\s[A-Z][a-z]+)?\sto\sAdopted(?!\sElsewhere)')

這也意味著我可以只使用原始 CSV 文件。


查看完整回答
反對(duì) 回復(fù) 2023-09-19
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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