You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将NaN行分隔的Pandas字符列反向implode为对应原单词?

解法逻辑

利用NaN行作为分组分隔符,将相邻非NaN字符归为同一单词组,拼接后映射回原行即可。

实现代码

首先构造示例数据(若已有数据可跳过):

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'characters': ['b', 'a', 't', np.nan, 'c', 'o', 'p'],
    'result': ['TP', 'TP', 'FN', None, 'TN', 'FP', 'TP']
})

核心处理代码:

# 生成辅助分组ID,每遇到NaN行就切换到下一个分组
df['group_id'] = df['characters'].isna().shift(fill_value=0).cumsum()

# 按分组拼接字符生成单词映射表
word_mapper = df.groupby('group_id')['characters'].agg(
    lambda x: ''.join(x.dropna()) if x.notna().any() else None
)

# 映射回原表
df['word'] = df['group_id'].map(word_mapper)

# NaN行单独设置word为None
df.loc[df['characters'].isna(), 'word'] = None

# 清理辅助列
df.drop(columns='group_id', inplace=True)

处理后得到的df完全符合要求的输出格式。

内容的提问来源于stack exchange,提问作者Rayleigh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:45:03