ホームページ  >  記事  >  バックエンド開発  >  Pandas DataFrame でカンマ区切りの値を複数の行に分割するにはどうすればよいですか?

Pandas DataFrame でカンマ区切りの値を複数の行に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 08:40:03626ブラウズ

How to Split Comma-Separated Values into Multiple Rows in Pandas DataFrames?

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

パンダ データフレームでカンマ区切り値を扱う場合、それらを独自の行に変換すると、さらなる分析が必要になります。これを実現する方法は次のとおりです:

Pandas の場合 >= 0.25:

このメソッドはプロセスを簡素化します:

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

   order_id order_date package package_code
0         1  20/5/2018      p1         #111
1         1  20/5/2018      p2         #222
2         1  20/5/2018      p3         #333
3         3  22/5/2018      p4         #444
4         7  23/5/2018      p5         #555
5         7  23/5/2018      p6         #666</code>

For Pandas

以前の 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()
)

  order_date  order_id package package_code
0  20/5/2018         1      p1         #111
1  20/5/2018         1      p2         #222
2  20/5/2018         1      p3         #333
3  22/5/2018         3      p4         #444
4  23/5/2018         7      p5         #555
5  23/5/2018         7      p6         #666</code>

詳細:

両方メソッドにはいくつかの手順が含まれます。

  • 非分割列をインデックスとして設定します。
  • str.split を使用して値をカンマで分割します。
  • 分割された値を行に積み重ねます.
  • スタックを解除して分割値を別の列に移動します。
  • 最終インデックスをリセットします。

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

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