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

如何用Python结合Pandas DataFrame实现句子字母转对应数字并求和

字母转数字并求和实现方案

问题说明

现有如下字母与数字关联的Pandas DataFrame:

import pandas as pd

# 初始化列表数据
data = [['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5], ['F', 6]]

# 创建DataFrame
df = pd.DataFrame(data, columns=['Letters', 'Num'])

需要实现:将包含上述字母的句子转换为对应数字(空格对应0),并计算所有数字的总和。示例如下:
句子:

sen = 'Ab df ec'

转换后对应序列为1 2 0 4 6 0 5 3,求和结果为1+2+0+4+6+0+5+3=21。

实现步骤与代码

1. 构建字母-数字映射字典

先将DataFrame转换为字典,方便快速查找字母对应的数字,同时统一处理大小写(示例句子包含小写字母,因此补充小写字母的映射):

# 构建字母到数字的映射字典
char_map = df.set_index('Letters')['Num'].apply(str).to_dict()
# 补充小写字母的映射,避免大小写匹配问题
char_map.update({k.lower(): v for k, v in char_map.items()})

2. 遍历字符并计算总和

通过遍历句子的每个字符,转换为对应数字后累加求和:

sen = 'Ab df ec'
# 用生成器表达式简化求和逻辑
total = sum(int(char_map[char]) if char != ' ' else 0 for char in sen)

print(f"句子转换后的总和为:{total}")

完整代码

import pandas as pd

# 初始化列表数据
data = [['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5], ['F', 6]]

# 创建DataFrame
df = pd.DataFrame(data, columns=['Letters', 'Num'])

# 构建支持大小写的字母-数字映射字典
char_map = df.set_index('Letters')['Num'].apply(str).to_dict()
char_map.update({k.lower(): v for k, v in char_map.items()})

# 目标句子
sen = 'Ab df ec'

# 计算总和
total = sum(int(char_map[char]) if char != ' ' else 0 for char in sen)

print(f"句子转换后的总和为:{total}")

代码说明

  • 映射字典同时保存大小写字母的键,确保句子中无论大小写字母都能匹配到对应数字。
  • 使用生成器表达式结合sum()函数,简化循环累加的逻辑,代码更简洁高效。
  • 空格直接对应0,不参与额外计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:36:04