ホームページ > バックエンド開発 > Python チュートリアル > 区切り文字を使用して Pandas 列のテキストを複数の行に分割するにはどうすればよいですか?

区切り文字を使用して Pandas 列のテキストを複数の行に分割するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-16 10:39:03
オリジナル
784 人が閲覧しました

How can you split text in a Pandas column into multiple rows using delimiters?

Pandas を使用して列内のテキストを複数の行に分割する

複数の行に分割する必要がある文字列を含む表形式のデータを操作する場合、パンダと Python を活用すると、このタスクに非常に役立ちます。 CSV ファイルに、特定の区切り文字で分割する必要があるテキストを含む列が含まれているシナリオを考えてみましょう。

問題ステートメント

「」という名前の列を含む CSV ファイルがあるとします。 Seatblocks」には、複数の座席セットを表す文字列が含まれており、各座席はスペースとコロンで区切られています。目標は、これらのシート セットを別々の列に分割することです。たとえば、次の Seatblocks 列:

2:218:10:4,6 1:13:36:1,12 1:13:37:1,13
ログイン後にコピー

は 3 つの別々の行になります:

2:218:10:4,6
1:13:36:1,12
1:13:37:1,13
ログイン後にコピー

Pandas を使用したソリューション

効率的にSeatblocks 列を分割して複数の行を作成すると、以下を利用できます。手順:

  1. スペースで分割: str.split() メソッドを使用して、「シートブロック」列の各セル内のテキストをスペースで分割します:

    s = df['Seatblocks'].str.split(' ')
    ログイン後にコピー
  2. シリーズを適用する関数: スペースで区切られた文字列の結果のリストをデータフレームに変換するには、各リストに Series 関数を適用します:

    s = s.apply(Series, 1)
    ログイン後にコピー
  3. Flatten DataFrame: 新しいデータフレームを積み重ねて 1 列に平坦化しますデータフレーム:

    s = s.stack()
    ログイン後にコピー
  4. インデックスをリセットして列名を変更: 元のデータフレームのインデックスと一致するようにインデックスをリセットし、列の名前を次のように変更します。 'Seatblocks':

    s.index = s.index.droplevel(-1)
    s.name = 'Seatblocks'
    ログイン後にコピー
  5. 元の列を削除: データフレームから元の "Seatblocks" 列を削除します:

    del df['Seatblocks']
    ログイン後にコピー
  6. 分割に参加DataFrame: 最後に、分割されたデータフレームを元のデータフレームと結合します:

    df = df.join(s)
    ログイン後にコピー

コロンによる分割の代替

Seatblocks 列はコロンで分割する必要があります。ソリューションを次のように変更できます。

s = df['Seatblocks'].str.split(' ')
s = s.apply(lambda x: Series(x.split(':')))
ログイン後にコピー

これにより、コロンで区切られた各文字列を独自の列に含むデータフレームが作成されます。

以上が区切り文字を使用して Pandas 列のテキストを複数の行に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート