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

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

Barbara Streisand
リリース: 2024-11-10 08:40:03
オリジナル
379 人が閲覧しました

How can I split text strings into multiple rows based on specific delimiters using Pandas?

テキストを複数の行に分割するパンダのメソッド

問題:
大きな CSV ファイルに列が含まれています特定の区切り文字に基づいて複数の行に分割する必要があるテキスト文字列を含む。目標は、分割テキストのセットごとに個別の行を作成することです。

Pandas を使用した解決策:

  1. 次を使用して、最初の区切り文字 (スペース) でテキストを分割します。 str.split(' ').
  2. apply() 関数を適用して、リスト内の各文字列を 2 番目の区切り文字 (コロン) で分割し、系列に変換します。
  3. Use stack( ) を使用して、結果の DataFrame を 1 つの列に変換し、インデックスをリセットします。
  4. 列の名前を 'Seatblocks' に変更します。
  5. 元の 'Seatblocks' 列を DataFrame から削除します。
  6. 新しい 'Seatblocks' 列を元の DataFrame に結合します。

スペースとコロンで分割:

s = df['Seatblocks'].str.split(' ').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Seatblocks'
del df['Seatblocks']
df.join(s)
ログイン後にコピー

出力例:

   CustNum     CustomerName  ItemQty Item  ItemExt  Seatblocks
0    32363  McCartney, Paul        3  F04       60  2:218:10:4,6
1    31316     Lennon, John       25  F01      300  1:13:36:1,12
1    31316     Lennon, John       25  F01      300  1:13:37:1,13
ログイン後にコピー

コロンによる分割:

df.join(s.apply(lambda x: Series(x.split(':'))))
ログイン後にコピー

出力例:

   CustNum     CustomerName  ItemQty Item  ItemExt  0    1   2     3
0    32363  McCartney, Paul        3  F04       60  2  218  10   4,6
1    31316     Lennon, John       25  F01      300  1   13  36  1,12
1    31316     Lennon, John       25  F01      300  1   13  37  1,13
ログイン後にコピー

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

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