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

基于字典映射创建并修改DataFrame的'ans'列技术需求

DataFrame新列'ans'的三步创建与修改

需要分三步完成DataFrame新列'ans'的创建与修改:

  • 第一步:将字典中的词汇映射到'text'列生成'ans'列。注意:若字典中的对应值是多词短语,需将对应的键重复短语的词数次数。
  • 第二步:把'text'列中不在字典内的内容,在'ans'列中替换为'O'。
  • 第三步:调整'ans'列的标记:如果当前元素的前一个元素不是'O',则将当前元素中的'B-'替换为'I-'。例如序列O O O B-name B-name需要修改为O O O B-name I-name。

代码示例

import pandas as pd

# 创建映射字典
dict_1 = {
        'B-name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
        'B-acc' : ['bank account', 'Account number', 'bank acc num']
}

# 创建初始DataFrame
data = ['Ankit has a bank account in HSBC.', 'shivangi forgot her bank acc num', 'Aishwarya met shaurya']
df = pd.DataFrame(data, columns=['text'])

期望最终结果

# 最终的DataFrame结构
data = (['Ankit has a bank account in HSBC.', 'B-name O O B-acc I-acc O O'],
        ['shivangi forgot her bank acc num', 'B-name O O B-acc I-acc I-acc'], 
        ['Aishwarya met shaurya','B-name O B-name'])
df = pd.DataFrame(data, columns=['text','ans'])
print(df)

运行后输出:

text                              ans
0  Ankit has a bank account in HSBC.  B-name O O B-acc I-acc O O
1     shivangi forgot her bank acc num  B-name O O B-acc I-acc I-acc
2                Aishwarya met shaurya              B-name O B-name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:27:24