如何按年度聚合CSV交易数据生成符合要求的两个DataFrame
实现方案
1. 预处理步骤
首先导入依赖库,读取CSV数据并完成基础格式处理:
import pandas as pd # 读取本地CSV文件 df = pd.read_csv("你的数据文件路径.csv") # 转换日期字段为datetime格式,方便提取年份 df["date"] = pd.to_datetime(df["date"]) # 新增年份列作为分组维度 df["year"] = df["date"].dt.year # 可选:如果数据存在成交量、收盘价为空的记录,先行过滤 df = df.dropna(subset=["vol", "收盘价"])
2. 生成年度最高成交量DataFrame
通过分组后广播最大值的方式,筛选出每一年成交量最高的全部记录,自动保留同一年所有并列最大值的条目:
max_vol_df = df[ df["vol"] == df.groupby("year")["vol"].transform("max") ][["year", "date", "vol"]].reset_index(drop=True)
3. 生成年度最高收盘价DataFrame
逻辑和最高成交量处理一致,替换对应字段即可:
max_close_df = df[ df["收盘价"] == df.groupby("year")["收盘价"].transform("max") ][["year", "date", "收盘价"]].reset_index(drop=True)
格式调整说明
如果最终输出不需要展示year字段,只需要在上述代码的字段筛选部分去掉year即可,匹配需求中的输出示例格式。
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

