亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

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

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

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

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

下面的這個可以獲取所有不同的日期和所有狀態,因為它們都有“更改狀態”部分,并且我可以將各個組與舊狀態還是新狀態進行匹配。

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]+)?)"

如果我只關注“領養”,這個就可以獲取我需要的日期。

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 循環。在關注采用日期的特定情況下,我可以使用以下命令將采用日期添加到 Jupyter 筆記本中的數據框中。

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 文件。


查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號