如何拆分一列字符串,并从单独的元素创建行? [复制]
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
【讨论】:
你太棒了,伙计。太感谢了。我会在一分钟内接受答案。以上是关于如何拆分一列字符串,并从单独的元素创建行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章