python - python - 如何在Python中基于分隔符的熊猫数据框中的值从内部的值创建新行?
问题描述
我有如下数据框。我想将列 zip 中的值拆分为行值,如下所示。这些值可以_ ,.
由这些分隔符分隔。这如何在 python 中完成。
输入
df.head(5)
Date Item_Code Type Zip
1/1/2020 A Long 07_08_09
12/4/2020 B Small AB_CD_EF_GF
13/4/2020 A Long 08_14
1/5/2020 A Long
21/5/2020 B Small 09,07,16
22/5/2020 B Small AB,07
预期产出
Date Item_Code Type Zip
1/1/2020 A Long 07
1/1/2020 A Long 08
1/1/2020 A Long 09
12/4/2020 B Small AB
12/4/2020 B Small CD
12/4/2020 B Small EF
12/4/2020 B Small GF
13/4/2020 A Long 08
13/4/2020 A Long 14
1/5/2020 A Long
21/5/2020 B Small 09
21/5/2020 B Small 07
21/5/2020 B Small 16
22/5/2020 B Small AB
22/5/2020 B Small 07
解决方案
首先使用Series.str.split
witg 正则表达式,然后分配回DataFrame.assign
然后使用DataFrame.explode
,我还在最后一步创建了默认的唯一索引:
df1 = (df.assign(Zip = df['Zip'].str.split('[_ ,\.]'))
.explode('Zip')
.reset_index(drop=True))
print (df1)
Date Item_Code Type Zip
0 1/1/2020 A Long 07
1 1/1/2020 A Long 08
2 1/1/2020 A Long 09
3 12/4/2020 B Small AB
4 12/4/2020 B Small CD
5 12/4/2020 B Small EF
6 12/4/2020 B Small GF
7 13/4/2020 A Long 08
8 13/4/2020 A Long 14
9 1/5/2020 A Long NaN
10 21/5/2020 B Small 09
11 21/5/2020 B Small 07
12 21/5/2020 B Small 16
13 22/5/2020 B Small AB
14 22/5/2020 B Small 07
推荐阅读
- unity3d - Unity 2D 上带有空对象碰撞器的简单问题
- python - python APScheduler中Spring fixedDelay的等价物
- python - 不确定 python 的等效 Golang tls 客户端配置。不确定 tlsconfig 中的 ServerName 键
- flutter - 通过颤振使用链接数据
- python - Google Colab 中的重现性 | 喀拉斯
- addeventlistener - 如何在事件侦听器中调用函数?
- react-native - 您可能需要适当的加载器来处理此文件类型,目前没有配置加载器来使用 Webpack 5.40.0 处理此文件
- css - 左对齐文本并删除填充
- c# - 如何在 Blazor 中更改日期输入值
- python - 将函数应用于数据框子集的最佳方法是什么?