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

如何高效将DataFrame内的类对象替换为其对应属性值

解决方案

这里提供两种远优于手动逐行逐列遍历的高效实现,均基于pandas原生优化的向量化操作:

方案1:applymap 逐元素处理(中小规模数据首选,写法最简)

所有列均为目标格式时,一行代码即可完成转换:

df = df.applymap(lambda item: (item[0], item[1].name))

如果仅部分列需要处理,指定目标列即可:

# 按需替换为你要处理的列名列表
target_cols = ["id1", "id2", "id3"]
df[target_cols] = df[target_cols].applymap(lambda item: (item[0], item[1].name))

该方法的循环逻辑在C层实现,比Python层手写双重遍历效率高1~2个数量级。

方案2:stack+map+unstack(超大规模数据性能更优)

如果你处理的是十万行以上的大表,可以用栈化操作进一步降低函数调用开销:

df = df.stack().map(lambda item: (item[0], item[1].name)).unstack()

结果验证

你可以先抽单个元素确认转换逻辑是否符合预期:

print(df["id1"][0])
# 输出为 (0, 'type1') 即说明逻辑正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:54:02