如何分解Python Pandas数据框并合并其他数据框中的字符串?

6l7fqoea  于 2023-05-15  发布在  Python
关注(0)|答案(1)|浏览(94)

Dataframe1有很多行和列的数据。一列是TextText列中的某些行具有字符串,并且某些字符串包括此{ExplodeEList2}
如何分解(展开)Dataframe1的特定行,并将每个字符串中的{ExplodeEList2}替换为单独的 Dataframe EList2['Name']中包含的每个名称?谢谢!我整天都在用头撞键盘想解决这个问题。
Dataframe1
| 文本|
| --------------|
| 无关数据|
| 随机样本文本{ExplodeElist 2}和更多随机样本文本。|
| 其他无关数据|
EList2
| 姓名|
| --------------|
| 杰克|
| 乔恩|
| 莎莉|
如何在Dataframe1中生成这个:
| 文本|
| --------------|
| 无关数据|
| 随机样本文本杰克和更多的随机样本文本。|
| 随机样本文本乔恩和更多的随机样本文本。|
| 随机样本文本莎莉和更多的随机样本文本。|
| 其他无关数据|

y3bcpkx1

y3bcpkx11#

您可以使用apply处理DataFrame1中包含字符串ExplodeElist2的所有Text值,用替换值列表替换字符串。然后你可以explode这个列表:

mask = DataFrame1['Text'].str.contains('{ExplodeElist2}')
DataFrame1.loc[mask, 'Text'] = DataFrame1.loc[mask, 'Text'].apply(lambda s:[s.replace('{ExplodeElist2}', n) for n in Elist2['Name']])
DataFrame1 = DataFrame1.explode('Text').reset_index(drop=True)

输出(用于示例数据):

Text
0                                     Unrelated data
1  Random sample text Jack and more random sample...
2  Random sample text Jon and more random sample ...
3  Random sample text Sally and more random sampl...
4                               Other unrelated data

相关问题