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

最Pythonic的pandas DataFrame单元格按条件拼接实现方法

实现方案

推荐写法(向量化操作,性能最优)

直接使用numpy.where做条件分支处理,一行即可完成赋值,是符合Pandas最佳实践的Pythonic写法:

import numpy as np
import pandas as pd

# 构造示例DataFrame(实际使用时替换为自己的df即可)
df = pd.DataFrame({
    "city": ["paris", "paris", "dallas", "miami", "paris"],
    "arr": [11, 12, 22, 15, 16]
})

# 核心赋值逻辑
df["final_target"] = np.where(
    df["city"] == "paris",
    df["city"] + "_" + df["arr"].astype(str),
    df["city"]
)

无额外依赖的Pandas原生写法

如果不想引入numpy依赖,也可以用Pandas自带的Series.where方法实现,效果完全一致:

df["final_target"] = df["city"].where(
    df["city"] != "paris",
    df["city"] + "_" + df["arr"].astype(str)
)

说明

两种写法都是全量向量化操作,比apply遍历行的写法性能高1~2个数量级,非常适合处理大数据量的DataFrame。逻辑上仅做一次条件判断:当city取值为paris时,将city字符串和转为字符串格式的arr值拼接,否则直接返回原值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:48:03