ホームページ  >  記事  >  バックエンド開発  >  カンマ区切り値に基づいて Pandas データフレームのセルを複数の行に分割する方法

カンマ区切り値に基づいて Pandas データフレームのセルを複数の行に分割する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 06:41:30660ブラウズ

How to Split a Cell into Multiple Rows in a Pandas Dataframe Based on Comma-Separated Values?

Pandas データフレームでセルを複数の行に分割する

問題:

Pandas があります注文データを含むデータフレーム。各注文には、「package」列と「package_code」列にカンマ区切りの文字列として保存された複数のパッケージが含まれています。パッケージ データを分割し、各パッケージに対応する注文の詳細を含む新しい行を作成することを目的としています。

解決策:

Pandas バージョン >= 0.25:

<code class="python">df.set_index(['order_id', 'order_date']) \
    .apply(lambda x: x.str.split(',').explode()) \
    .reset_index()</code>

Pandas バージョンの場合 :

<code class="python">df.set_index(['order_date', 'order_id']) \
    .stack() \
    .str.split(',', expand=True) \
    .stack() \
    .unstack(-2) \
    .reset_index(-1, drop=True) \
    .reset_index()</code>

説明:

1. Set Index: データフレームのインデックスとして、そのまま残すべき列 ('order_id' と 'order_date') を設定します。

2.分割とスタック:

  • Pandas >= 0.25 の場合: apply(lambda x: x.str.split(',').explode()) を使用して、カンマ区切りの「package」列と「package_code」列を複数の行に展開します。
  • Pandas

3.アンスタックしてインデックスをリセット:

  • 最後から 2 番目のレベル (-2) でスタックをアンスタックし、分割パッケージとパッケージ コード データ用の新しい列を作成します。
  • インデックスを次のようにリセットします。インデックスの変更を元に戻し、最終的なデータフレームを取得します。

以上がカンマ区切り値に基づいて Pandas データフレームのセルを複数の行に分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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