分区(如果适用)

问题描述 投票:2回答:1

我在数据框中有一列有大约1,4M行聊天对话,每个单元格中的一般格式为(1):

'名称代理人:对话'

但是,并非列中的所有单元格都保持此格式。有些细胞很简单(2):

'会话'

我使用以下代码来获取结构如(1)的单元格的对话:

only_transcripts['msgText'] = only_transcripts['msgText'].str.partition(':', expand = True)[2]

但是,显然,如果单元格不包含冒号(:),则此代码不返回任何内容。

有一种快速的方法,我可以避免for循环遍历每个实例,只在包含冒号的单元格中应用上面的代码?

python pandas dataframe partition
1个回答
2
投票

通过原始列添加Series.fillna替换NaNs,这里也是split和seelct第二列表的另一种解决方案

only_transcripts['msgText'] =(only_transcripts['msgText'].str.split(':')
                                                         .str[1]
                                                         .fillna(only_transcripts['msgText']))
© www.soinside.com 2019 - 2024. All rights reserved.