首页 > 后端开发 > Python教程 > 如何根据逗号分隔值将 Pandas 数据框中的单元格拆分为多行?

如何根据逗号分隔值将 Pandas 数据框中的单元格拆分为多行?

Patricia Arquette
发布: 2024-10-28 06:41:30
原创
765 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板