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

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

DDD
DDD原创
2024-11-11 01:02:03769浏览

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