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

Python不使用SQL库如何将现有数据切片转换为目标表格格式?

你需要实现的是宽表转长表的操作,对应SQL中的UNPIVOT功能,无需使用SQL相关库,Python场景下有两种常用实现方案:

方案1:使用pandas实现(数据科学方向首选)

pandas是Python数据科学方向的基础工具库,内置的melt方法可以直接实现该需求,代码简洁易维护。

  1. 先安装依赖(已安装可跳过):
pip install pandas
  1. 转换代码示例:
import pandas as pd

# 读取原始数据,可根据你的文件格式替换为read_excel等方法
df = pd.read_csv("你的原始数据文件路径.csv")

# 执行宽转长操作
result_df = pd.melt(
    df,
    # 填写不需要展开、要保留的维度列,例如用户ID、地区、产品ID等
    id_vars=["产品ID", "所属地区"],
    # 填写展开后分类列的列名,例如月份、指标名称等
    var_name="统计月份",
    # 填写展开后数值列的列名,例如销售额、用户量等
    value_name="指标数值"
)

# 打印结果或导出到文件
print(result_df)
result_df.to_csv("转换后结果.csv", index=False)

方案2:使用Python标准库csv实现(无第三方依赖)

如果不需要后续数据处理,仅要完成格式转换,可以直接用Python原生内置的csv模块实现,无需安装任何第三方库:

import csv

# 配置文件路径
source_file = "原始数据.csv"
output_file = "转换结果.csv"

with open(source_file, "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    # 配置需要保留的固定维度列(示例取前2列,可自行修改)
    fixed_columns = reader.fieldnames[:2]
    # 配置需要展开的列(示例取第3列及之后的所有列,可自行修改)
    unpivot_columns = reader.fieldnames[2:]

    with open(output_file, "w", encoding="utf-8", newline="") as out_f:
        writer = csv.DictWriter(out_f, fieldnames=fixed_columns + ["分类", "数值"])
        writer.writeheader()
        for row in reader:
            # 每行原始数据展开为多行
            for col in unpivot_columns:
                new_row = {col_name: row[col_name] for col_name in fixed_columns}
                new_row["分类"] = col
                new_row["数值"] = row[col]
                writer.writerow(new_row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:06:06