首页  >  文章  >  后端开发  >  如何根据逗号分隔值将 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