如何拆分一列字符串,并从单独的元素创建行? [复制]

Posted

技术标签:

【中文标题】如何拆分一列字符串,并从单独的元素创建行? [复制]【英文标题】:How to split a column of strings, and create rows from the separate elements? [duplicate] 【发布时间】:2021-01-08 23:59:39 【问题描述】:

我无法将文本文档拆分为数据框中的多个句子并为每个句子创建行,而其他列值应该相同。 让我解释一下:

最初

A | B     | C | D
-------------
x | A.B   | x | x
y | C.D.E | y | y

我想要的(在B列中拆分文本后)

A | B | C | D
-------------
x | A | x | x
x | B | x | x
y | C | y | y
y | D | y | y
y | E | y | y

到目前为止我做了什么?

我已经设法使用 split() 方法将文本文档分成不同的句子。现在我被困在第二部分了。

我们将不胜感激。

【问题讨论】:

既然你已经成功地拆分了字符串,它们现在应该是列表。只需使用df = df.explode('B') 【参考方案1】:

使用str.split('.')explode()

str.split('.') 返回一个准备爆炸的列表。 Explode 需要列中的列表格式才能使其工作。

df['B'] = df['B'].str.split('.')
df
Out[10]: 
   A          B  C  D
0  x     [A, B]  x  x
1  y  [C, D, E]  y  y

然后展开列表,将column作为参数传入,表示要根据该column展开dataframe:

df['B'] = df['B'].str.split('.')
df = df.explode('B')
df
Out[11]: 
   A  B  C  D
0  x  A  x  x
0  x  B  x  x
1  y  C  y  y
1  y  D  y  y
1  y  E  y  y

【讨论】:

你太棒了,伙计。太感谢了。我会在一分钟内接受答案。

以上是关于如何拆分一列字符串,并从单独的元素创建行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将一列拆分为多行

java - 如何在java中将字符串元素拆分为不相交的组?

根据两个不同的条件拆分一列字符串(具有不同的模式)

使用行分隔符拆分 Spark 数据帧

在 PowerBI 中拆分文本列

如何把oracle中查询出来的一列进行拆分。如查出结果为1@2@3@4,如何拆分成 1 2 3