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

如何将字符序列映射为Pandas DataFrame中对应的独热编码向量

实现方法

核心思路是把DataFrame转换为「字符-特征向量」的映射结构,之后直接查表就能完成序列的批量映射:

  1. 将DataFrame的char列设为索引,后续可以直接用字符作为key快速查询对应的特征行
  2. 遍历目标字符序列,逐个取出对应的特征向量即可,支持输出列表、NumPy数组两种常用格式

完整可运行代码

import pandas as pd
import numpy as np

# 构造你提供的特征映射表
df = pd.DataFrame({
    'char': ['I', 'J', 'N', 'S', 'Z'],
    'fricative': [0, 0, 0, 1, 1],
    'nasal': [0, 0, 1, 0, 0],
    'lateral': [0, 1, 0, 0, 0],
    'labial': [0, 0, 0, 0, 0],
    'coronal': [0, 1, 0, 1, 1],
    'dorsal': [0, 0, 1, 0, 0],
    'frontal': [1, 1, 0, 0, 0]
})

# 转换为字符到特征向量的映射表
char_feature_map = df.set_index('char')

# 待转换的字符序列
target_seq = ['I', 'Z', 'S', 'I', 'I', 'J', 'N', 'J', 'I']

# 1. 输出为嵌套列表格式
result_list = [char_feature_map.loc[char].tolist() for char in target_seq]
# 2. 输出为NumPy二维数组格式(适合后续模型输入)
result_array = np.array(result_list)

输出示例

以result_list为例,转换后的结果和特征表完全对应:

[
 [0, 0, 0, 0, 0, 0, 1], # I对应的特征
 [1, 0, 0, 0, 1, 0, 0], # Z对应的特征
 [1, 0, 0, 0, 1, 0, 0], # S对应的特征
 [0, 0, 0, 0, 0, 0, 1], # I对应的特征
 [0, 0, 0, 0, 0, 0, 1], # I对应的特征
 [0, 0, 1, 0, 1, 0, 1], # J对应的特征
 [0, 1, 0, 0, 0, 1, 0], # N对应的特征
 [0, 0, 1, 0, 1, 0, 1], # J对应的特征
 [0, 0, 0, 0, 0, 0, 1]  # I对应的特征
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:01