首页  >  文章  >  后端开发  >  如何将 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