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

在pandas中拼接多列非空值生成带层级结构的id列

pandas实现多列非空值拼接生成层级id

你可以按照以下步骤实现需求:

  1. 首先统一处理三列中的空值(如果你的表格中空单元格已经是NaN类型可跳过这一步)
    很多时候表格里看起来空白的单元格实际是空字符串或者带空格的字符串,需要先统一替换为NaN避免拼接时出现多余的点号:
import pandas as pd
import numpy as np

df[['Zone', 'Store', 'Department']] = df[['Zone', 'Store', 'Department']].replace(r'^\s*$', np.nan, regex=True)
  1. 按行拼接非空值生成id列
df['id'] = df[['Zone', 'Store', 'Department']].agg(
    lambda row: '.'.join(row.dropna().astype(str)),
    axis=1
)

运行上述代码后就能得到你预期的id列结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 02:09:04