首页 > 后端开发 > Python教程 > 如何将 Pandas 列中的文本拆分为多行?

如何将 Pandas 列中的文本拆分为多行?

DDD
发布: 2024-11-11 01:02:03
原创
782 人浏览过

How to Split Text in a Pandas Column into Multiple Rows?

使用 Pandas 将列中的文本拆分为多行

处理大型 CSV 文件时,有必要有效地操作数据。一项常见任务是将一列中的文本拆分为多行。这可以使用 Python 中强大的数据操作库 Pandas 来实现。

假设我们有一个 CSV 文件,其中有一列名为“Seatblocks”,其中包含由空格和冒号分隔的文本值。我们的目标是将此列中的每个值拆分为单独的行,为每个冒号分隔的部分创建新列。

CustNum  CustomerName     ItemQty  Item   Seatblocks                 ItemExt
32363    McCartney, Paul      3     F04    2:218:10:4,6                   60
31316    Lennon, John        25     F01    1:13:36:1,12 1:13:37:1,13     300
登录后复制

按空格拆分“Seatblocks”列并为每个部分提供单独的行,我们使用以下代码:

s = df['Seatblocks'].str.split(' ').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Seatblocks'
del df['Seatblocks']
df = df.join(s)
登录后复制

此代码产生以下输出:

   CustNum     CustomerName  ItemQty Item  ItemExt  Seatblocks
0    32363  McCartney, Paul        3  F04       60  2:218:10:4,6
1    31316     Lennon, John       25  F01      300  1:13:36:1,12
1    31316     Lennon, John       25  F01      300  1:13:37:1,13
登录后复制

要将每个冒号分隔的字符串拆分在其自己的列中,我们可以使用以下代码:

df.join(s.apply(lambda x: Series(x.split(':'))))
登录后复制

结果如下:

   CustNum     CustomerName  ItemQty Item  ItemExt  0    1   2     3
0    32363  McCartney, Paul        3  F04       60  2  218  10   4,6
1    31316     Lennon, John       25  F01      300  1   13  36  1,12
1    31316     Lennon, John       25  F01      300  1   13  37  1,13
登录后复制

这些方法提供了将一列中的文本拆分为多行的有效方法,从而实现进一步的数据操作和分析。

以上是如何将 Pandas 列中的文本拆分为多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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