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

如何为Excel的Municipio列自动生成递增的codigo municipio分组编码?

按市政名称自动生成递增编码的高效方案

以下是几种适合处理大规模数据集的可行方案,无需手动操作:

Excel 方案

假设你的"Municipio"列在A列,从第2行开始有数据:

  • 在B2单元格输入公式:=IF(A2=A1,B1,MAX($B$1:B1)+1)
  • 将B1单元格设为1(第一个市政的编码)
  • 选中B2单元格,下拉填充至所有行即可

这个公式会判断当前行的市政名称是否和上一行相同,相同则沿用之前的编码,不同则自动生成新的递增编码。

Python Pandas 方案

适合处理超大规模数据集,代码简洁高效:

import pandas as pd

# 读取你的数据集(替换为实际文件路径)
df = pd.read_csv("your_dataset.csv")

# 生成"codigo municipio"列:检测市政名称变化并累计计数
df["codigo municipio"] = (df["Municipio"] != df["Municipio"].shift()).cumsum()

# 保存处理后的数据集
df.to_csv("dataset_with_code.csv", index=False)

这段代码通过对比当前行与上一行的市政名称,每次变化时计数加1,快速生成编码。

SQL 方案

如果数据存储在数据库中,可使用窗口函数实现:

按市政名称排序生成编码

SELECT 
    Municipio,
    DENSE_RANK() OVER (ORDER BY Municipio) AS "codigo municipio"
FROM 
    your_table;

按数据原有顺序生成编码(按出现先后计数)

SELECT 
    Municipio,
    SUM(CASE WHEN prev_municipio IS NULL OR Municipio != prev_municipio THEN 1 ELSE 0 END) 
        OVER (ORDER BY row_id) AS "codigo municipio"
FROM (
    SELECT 
        Municipio,
        LAG(Municipio) OVER (ORDER BY row_id) AS prev_municipio,
        row_id -- 替换为你的表中用于排序的主键/行号字段
    FROM your_table
) AS sub_query;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:20:12