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

Python Pandas:基于条件快速分类唯一行组合的优化方案

高效实现方案

以下几种方法均基于底层优化的聚合逻辑,处理32000行数据仅需几秒,完全解决性能问题:

1. Python Pandas(推荐,大数据集首选)

Pandas的分组聚合依赖C扩展实现,比纯Python循环效率高几个数量级:

import pandas as pd

# 读取数据集(示例为CSV,可替换为Excel、数据库等来源)
df = pd.read_csv("your_data.csv")

# 分组并合并Location
result = df.groupby(["Date", "Visitor", "Car Name"])["Location"].agg(lambda x: " & ".join(x)).reset_index()

# 保存结果
result.to_csv("output.csv", index=False)

如果组内有重复Location需要去重,把lambda x改成lambda x: " & ".join(pd.unique(x))即可。

2. SQL(数据存数据库时用)

数据库引擎对聚合操作做了深度优化,直接用内置字符串聚合函数即可:

MySQL/MariaDB

SELECT 
    Date,
    Visitor,
    `Car Name`,
    GROUP_CONCAT(Location SEPARATOR ' & ') AS Location
FROM your_table
GROUP BY Date, Visitor, `Car Name`;

去重版本:GROUP_CONCAT(DISTINCT Location SEPARATOR ' & ')

PostgreSQL

SELECT 
    Date,
    Visitor,
    "Car Name",
    STRING_AGG(Location, ' & ') AS Location
FROM your_table
GROUP BY Date, Visitor, "Car Name";

去重版本:STRING_AGG(DISTINCT Location, ' & ')

3. Excel Power Query(非编程用户首选)

Power Query是Excel内置的高效数据处理工具,无需代码即可完成:

  1. 选中数据区域,点击「数据」→「从表格/区域」进入Power Query编辑器
  2. 点击「转换」→「分组依据」,分组列选Date、Visitor、Car Name,新列名设为Location,操作选「所有行」
  3. 添加自定义列,输入公式:Text.Combine([Location][Location], " & ")
  4. 删除包含原始行的Location列,将自定义列重命名为Location
  5. 点击「关闭并上载」,结果会生成新工作表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:45:31