如何根据列中逗号分隔值的数量复制行

2024-05-13 00:35:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含数据变更日志的大数据框。每行代表“产品”,每个产品可以有多个“动作类型”。它可以是新的、删除的、重命名的、移动的、更新的等等,也可以是它们的组合,用逗号分隔

示例:

  • 移动、重命名
  • 移动、重命名、更新

我试图实现的是,为那个些操作类型具有这样的组合的操作复制行,并为它们中的每一个创建单独的行。以下是我的例子:

数据帧:

Product Description Effective date Action Type
Phone   Nokia       2019-08-08     Move, Text
Car     Honda       2018-12-12     Move, Text, Update
PC      Lenovo      2020-04-04     New

我想要实现的是:

Product Description Effective date Action Type
Phone   Nokia       2019-08-08     Move
Phone   Nokia       2019-08-08     Text
Car     Honda       2018-12-12     Move
Car     Honda       2018-12-12     Text
Car     Honda       2018-12-12     Move, Text, Update
PC      Lenovo      2020-04-04     New

如何做到这一点


Tags: 数据text类型datemove产品phoneaction
1条回答
网友
1楼 · 发布于 2024-05-13 00:35:38

在用逗号拆分列后,可以使用^{}进行此操作:

df['Action Type'] = df['Action Type'].str.split(', ')
df.explode('Action Type')

  Product Description Effective date Action Type
0   Phone       Nokia     2019-08-08        Move
0   Phone       Nokia     2019-08-08        Text
1     Car       Honda     2018-12-12        Move
1     Car       Honda     2018-12-12        Text
1     Car       Honda     2018-12-12      Update
2      PC      Lenovo     2020-04-04         New

相关问题 更多 >