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

如何遍历pandas DataFrame并通过指定字典替换0、1值

实现方法

pandas内置方法可以直接完成需求,无需手动逐行逐列遍历,效率远高于自定义循环。

步骤说明

  1. 先确认你的DataFrame中0、1的存储类型,如果是整数类型,需要先把映射字典的key从字符串转为整数,避免匹配失败。
  2. 直接调用pandas的replace方法传入映射字典即可完成按列替换。

完整代码示例

import pandas as pd
import numpy as np

# 构造测试用DataFrame,第二行全为0,其余行全为1,和你给出的预期输出匹配
df = pd.DataFrame(np.ones((5, 6), dtype=int))
df.loc[1] = 0

# 你的列映射字典
map_dict = {
    0: {'0': 'G', '1': 'A'},
    1: {'0': 'G', '1': 'A'},
    2: {'0': 'T', '1': 'A'},
    3: {'0': 'G', '1': 'A'},
    4: {'0': 'A', '1': 'C'},
    5: {'0': 'C', '1': 'A'}
}

# 映射字典key类型转换(如果你的df里0、1是整数,需要这一步;如果是字符串可以删掉)
for col in map_dict:
    map_dict[col] = {int(k): v for k, v in map_dict[col].items()}

# 按列替换核心代码
df = df.replace(map_dict)

运行结果

输出前两行如下,和你给出的预期一致:

0  1  2  3  4  5
0  A  A  A  A  C  A
1  G  G  T  G  A  C

注意:如果你需要第一行全部输出为A,调整映射字典中第4列1对应的取值即可。

可选遍历实现(不推荐大数据量使用)

如果确实需要通过遍历实现,也可以按列调用map方法完成替换:

for col in df.columns:
    df[col] = df[col].map(map_dict[col])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:15:05