我在数据框中有一列有大约1,4M行聊天对话,每个单元格中的一般格式为(1):
'名称代理人:对话'
但是,并非列中的所有单元格都保持此格式。有些细胞很简单(2):
'会话'
我使用以下代码来获取结构如(1)的单元格的对话:
only_transcripts['msgText'] = only_transcripts['msgText'].str.partition(':', expand = True)[2]
但是,显然,如果单元格不包含冒号(:),则此代码不返回任何内容。
有一种快速的方法,我可以避免for循环遍历每个实例,只在包含冒号的单元格中应用上面的代码?
通过原始列添加Series.fillna
替换NaN
s,这里也是split
和seelct第二列表的另一种解决方案
only_transcripts['msgText'] =(only_transcripts['msgText'].str.split(':')
.str[1]
.fillna(only_transcripts['msgText']))