首頁  >  文章  >  後端開發  >  如何將 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 DataFrame 中的單元格拆分為多行

處理pandas DataFrame 中的逗號分隔值時,可以將它們轉換為自己的行有必要進行進一步分析。以下是如何實現這一點:

對於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>

對於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中文網其他相關文章!

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