ホームページ  >  記事  >  バックエンド開発  >  州と地域のパターンを含む特定の構造を持つテキスト ファイルから Pandas DataFrame を作成するにはどうすればよいですか?

州と地域のパターンを含む特定の構造を持つテキスト ファイルから Pandas DataFrame を作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 03:05:02572ブラウズ

How can I create a Pandas DataFrame from a text file with a specific structure that includes state and region patterns?

状態パターンと領域パターンを使用したテキスト ファイルからの Pandas DataFrame の読み取りと整形

特定の構造を持つテキスト ファイルから Pandas DataFrame を作成するには、戦略的なデータ操作が必要です。問題を詳しく調べて、提供されたテキストを目的の DataFrame に変換する解決策を探ってみましょう。

データ構造

テキスト ファイルは、次の階層構造に従います。

  • 「[編集]」の行は州名です。
  • 「[番号]」の行は地域です名前。
  • 同じ州に対して地域名を繰り返す必要があります。

解決策

1.テキストファイルの読み込み

まず、テキストファイルを読み込み、read_csv()を使用してDataFrameを作成します。特定の区切り文字がないため、セミコロンなど、データに存在しないカスタム区切り文字を指定します:

<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>

2。州名の抽出

str.extract() メソッドと正規表現を使用して州名を含む行を特定し、「[edit]」までの州名を取得します。次の値を使用して「State」という名前の新しい列を作成します:

<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>

3.領域名から括弧情報を削除

「領域名」列から括弧とその中に囲まれた文字を削除します:

<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>

4.州ヘッダ行の削除

「地域名」列に「[edit]」と表示されている行を削除します。 str.contains():

<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>

5 を使用してマスクを作成します。最終的な DataFrame

この時点で、必要に応じて「State」列と「Region Name」列を含む DataFrame が完成しました。

<code class="python">print(df)</code>

Extended Solution

「地域名」列に括弧で囲まれたテキストを含めることを好みます。これは変更されたものです。 solution:

<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>

これにより、「State」列と「Region Name」列を含む DataFrame が生成されます。領域名には括弧で囲まれたテキストが含まれます。

以上が州と地域のパターンを含む特定の構造を持つテキスト ファイルから Pandas DataFrame を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。