從具有特定結構的文字檔案中建立Pandas DataFrame 需要策略性的資料操作。讓我們深入研究這個問題並探索一種解決方案,將提供的文字轉換為所需的 DataFrame。
文字檔案遵循分層結構,其中:
首先,讀取文字檔案並使用 read_csv() 建立一個 DataFrame。由於沒有特定的分隔符,請指定資料中不存在的自訂分隔符,例如分號:
<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>
使用 str.extract() 方法和正規表示式識別包含州名稱的行,以捕獲最多「[edit]」的州名稱。使用下列值建立一個名為「State」的新欄位:
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>
從「區域名稱」列中刪除括號及其中包含的任何字元:
<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>
刪除「區域名稱」欄位中出現「[edit]」的行。使用 str.contains() 建立遮罩:
<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>
此時,您已根據需要取得了包含「州」和「地區名稱」欄位的 DataFrame。
<code class="python">print(df)</code>
如果您更喜歡在「區域名稱」列中包含括號內的文本,這裡是修改後的解決方案:
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill()) df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True) print(df)</code>
這將產生一個包含「州」和「區域名稱」欄位的DataFrame,其中區域名稱包括括號內的文字。
以上是如何從具有包含州和地區模式的特定結構的文本文件創建 Pandas DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!