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

如何对Pandas DataFrame排除指定列外的所有列批量执行ASCII转换?

批量处理Pandas指定列转换方案

你可以通过列过滤+批量映射的方式实现需求,不需要手动逐个列写转换逻辑,即使有上百个待处理列也可以通用:

  • 第一步:过滤出所有需要处理的列,排除_NAME和_TIMESTAMP两个不需要转换的固定列
  • 第二步:将重复的转换逻辑封装为独立函数,用applymap(pandas 2.1版本前)或者map(pandas 2.1版本及之后)批量应用到所有目标列

示例代码如下:

# 1. 筛选待转换列:排除两个非数值列
target_cols = [col for col in df.columns if col not in ['_NAME', '_TIMESTAMP']]

# 2. 封装转换逻辑,和你原来的lambda逻辑完全一致
def value_convert(x):
    high_byte_char = chr(round(x / 256))
    low_byte_char = chr(x % 256)
    return (high_byte_char + low_byte_char)[::-1]

# 3. 批量应用转换,直接覆盖原列
# pandas 2.1之前版本用这个:
df[target_cols] = df[target_cols].applymap(value_convert)

# pandas 2.1及之后版本推荐用这个(性能更高,applymap已被弃用):
# df[target_cols] = df[target_cols].map(value_convert)

如果你需要保留原始的数值列不被覆盖,可以在赋值时给新列加前缀/后缀即可,示例:

df[[f"{col}_converted" for col in target_cols]] = df[target_cols].applymap(value_convert)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:24:05