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

如何用Python/Pandas或Excel将行数据转换为日历式业绩表?

解决CSV月度业绩数据转年度矩阵表问题

以下提供两种实用方案,分别适配非编程用户和有编程基础的用户:

方案一:Excel/Google Sheets可视化操作(无需编程)

  1. 预处理数据:
    将CSV导入工具后,用数据>分列功能,按冒号+空格拆分日期与回报列,确保Date列是MM/YYYY格式,Return列保留百分比文本或转成数值格式。
  2. 生成数据透视表:
    • 选中全量数据,点击插入>数据透视表,指定输出位置。
    • 字段配置:
      • 提取年份(用公式TEXT(Date列,"YYYY"))拖至「行」区域
      • 提取月份(用公式TEXT(Date列,"MM"))拖至「列」区域
      • 将Return列拖至「值」区域,汇总方式选「求和」(单月单数据时直接显示原值)
  3. 格式调整:
    • 把1-12月列重命名为Jan, Feb, ..., Dec(或中文月份名)
    • 调整值区域为百分比格式,整理成目标矩阵样式即可。

方案二:Python脚本批量处理(适配大数据量)

用pandas库可高效完成转换,代码如下:

import pandas as pd

# 读取CSV,指定分隔符为冒号+空格
df = pd.read_csv('your_data.csv', sep=': ', header=0, names=['Date', 'Return'])

# 拆分日期为月份、年份并转成数值类型
df[['Month', 'Year']] = df['Date'].str.split('/', expand=True)
df['Month'] = df['Month'].astype(int)
df['Year'] = df['Year'].astype(int)

# 清洗回报列,去掉百分号转成数值
df['Return'] = df['Return'].str.replace('%', '').astype(float)

# 生成透视表,缺失月份填充为0%(可按需修改默认值)
pivot_table = df.pivot_table(index='Year', columns='Month', values='Return', fill_value=0)

# 调整月份顺序为1-12,重命名为英文月份名
month_labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
pivot_table = pivot_table.reindex(columns=range(1,13))
pivot_table.columns = month_labels

# 转回带正负号的百分比格式
pivot_table = pivot_table.applymap(lambda x: f"{x:+}%")

# 打印结果或保存为新CSV
print(pivot_table)
pivot_table.to_csv('performance_matrix.csv')

使用提示:

  • 替换your_data.csv为你的实际文件名
  • 若需调整缺失月份的默认显示值,修改fill_value参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:35:18