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

如何将CSV值动态存入数组并按相同Price聚合更新DataFrame的PriceQ

适配场景的最优数据结构

这个场景下**字典(哈希表)**是最合适的选择,核心原因是它可以通过Price作为键实现O(1)时间复杂度的查找、插入和更新,远优于用数组遍历匹配的O(n)查找效率,尤其适合CSV数据量较大的场景。

动态更新实现逻辑
  • 初始化空字典,键存储Price值,值存储对应Price的累计PriceQ
  • 逐行读取CSV数据,跳过表头行后,对每行做如下处理:
    1. 提取当前行的Price和PriceQ,统一转为数值类型避免匹配异常
    2. 判断Price是否已存在于字典的键中:
      • 存在:直接将字典中对应的值加上当前行的PriceQ
      • 不存在:将Price作为新键,当前行的PriceQ作为初始值存入字典
  • 全量CSV读取完成后,直接将字典转为目标DataFrame即可
Python 实现示例

如果你需要严格逐行处理的场景,可以用以下逻辑实现:

import csv
import pandas as pd

price_q_map = {}

# 逐行读取CSV
with open('你的文件路径.csv', 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        price = float(row['Price'])
        price_q = int(row['PriceQ'])
        if price in price_q_map:
            price_q_map[price] += price_q
        else:
            price_q_map[price] = price_q

# 转为目标DataFrame
result_df = pd.DataFrame(price_q_map.items(), columns=['Price', 'PriceQ'])

如果没有强制逐行处理要求,全量读入后直接用pandas分组聚合即可一行得到结果:

import pandas as pd
df = pd.read_csv('你的文件路径.csv')
result_df = df.groupby('Price', as_index=False)['PriceQ'].sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:24:03