首頁  >  文章  >  後端開發  >  如何根據逗號分隔值將 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.設定索引: 將應保持不變的欄位('order_id ' 和'order_date')設定為資料框的索引。

2.分割與堆疊:

  • 對於Pandas >= 0.25:使用apply(lambda x: x.str.split(',') .explode()) 拆分逗號分隔的'package' 和'package_code' 欄位並將它們展開為多行。
  • 對於Pandas

3.取消堆疊並重設索引:

  • 在倒數第二層(-2) 取消堆疊,為分割套件和套件程式碼資料建立新欄位。
  • 將索引重設為恢復索引變更並取得最終資料幀。

以上是如何根據逗號分隔值將 Pandas 資料框中的儲存格拆分為多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn