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

时间:2021-04-14 13:28:14

标签: python pandas dataframe

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

我想要实现的是,为那些具有此类组合的操作类型复制行并为每个操作类型创建单独的行。这是我所拥有的示例:

数据框:

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

这是怎么做到的? 感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以在用逗号分隔列后使用 explode

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