如何用Python为现有DataFrame新增列并依据另一列赋值?
给DataFrame新增科目映射列的解决方案
方法:使用map()函数
这是实现这类固定值映射最简洁高效的方式,步骤如下:
- 导入依赖并构造示例DataFrame
import pandas as pd # 模拟你的原始DataFrame df = pd.DataFrame({ 'Column A': ['Maths', 'Science', 'English', 'Social', 'Maths', 'English'] })
- 定义映射规则字典
把科目和对应的数字一一对应:
subject_to_num = { 'Maths': 1, 'Science': 2, 'English': 3, 'Social': 4 }
- 新增映射列
调用map()函数将Column A的值转换为对应数字,新增为新列(比如命名为Subject Code):
df['Subject Code'] = df['Column A'].map(subject_to_num)
- 查看结果
运行后输出的完整DataFrame:
Column A Subject Code 0 Maths 1 1 Science 2 2 English 3 3 Social 4 4 Maths 1 5 English 3
额外处理:应对未映射的值
如果原始DataFrame中存在不在映射字典里的科目,map()会返回NaN。如果需要给这些值设置默认值,可以用fillna():
# 未映射科目默认设为0 df['Subject Code'] = df['Column A'].map(subject_to_num).fillna(0)
内容的提问来源于stack exchange,提问作者yugesh R
相关产品推荐
相关产品推荐

