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

如何通过PowerQuery M语言或Python实现示例式CSV数据提取?

PowerQuery M语言与Python实现CSV数据提取方案

一、PowerQuery M语言实现

以下代码可直接在PowerQuery高级编辑器中使用,实现与示例提取功能一致的CSV数据读取:

let
    // 替换为你的CSV文件实际路径
    FilePath = "C:\YourFolder\sales_data.csv",
    // 读取空格分隔的CSV文件,关闭引号解析适配无引号格式
    Source = Csv.Document(File.Contents(FilePath), [Delimiter=" ", Encoding=1252, QuoteStyle=QuoteStyle.None]),
    // 将第一行设为表头
    PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    // 批量转换数据类型(按需调整)
    ChangedType = Table.TransformColumnTypes(PromotedHeaders, {
        {"ProductKey", Int64.Type},
        {"OrderDateKey", Int64.Type},
        {"DueDateKey", Int64.Type},
        {"ShipDateKey", Int64.Type},
        {"CustomerKey", Int64.Type},
        {"PromotionKey", Int64.Type},
        {"CurrencyKey", Int64.Type},
        {"SalesTerritoryKey", Int64.Type},
        {"SalesOrderNumber", type text},
        {"SalesOrderLineNumber", Int64.Type},
        {"RevisionNumber", Int64.Type},
        {"OrderQuantity", Int64.Type},
        {"UnitPrice", type number},
        {"ExtendedAmount", type number},
        {"UnitPriceDiscountPct", type number},
        {"DiscountAmount", type number},
        {"ProductStandardCost", type number},
        {"TotalProductCost", type number},
        {"SalesAmount", type number},
        {"TaxAmt", type number},
        {"Freight", type number},
        {"CarrierTrackingNumber", type text},
        {"CustomerPONumber", type text},
        {"OrderDate", type date},
        {"DueDate", type date},
        {"ShipDate", type date}
    })
in
    ChangedType

关键说明:

  • 替换FilePath为你的CSV文件实际路径
  • Delimiter=" "适配示例中的空格分隔格式,若为制表符分隔可改为Delimiter="\t"
  • TransformColumnTypes中的数据类型可根据实际数据调整

二、Python实现(基于Pandas库)

通过Pandas可快速读取并处理该空格分隔的CSV数据,代码如下:

import pandas as pd

# 替换为你的CSV文件实际路径
file_path = "C:/YourFolder/sales_data.csv"

# 读取多空格分隔的CSV,sep='\s+'匹配任意数量连续空格
df = pd.read_csv(file_path, sep='\s+')

# 按示例格式解析日期列
df['OrderDate'] = pd.to_datetime(df['OrderDate'], format='%d/%m/%Y %H:%M')
df['DueDate'] = pd.to_datetime(df['DueDate'], format='%d/%m/%Y %H:%M')
df['ShipDate'] = pd.to_datetime(df['ShipDate'], format='%d/%m/%Y %H:%M')

# 可选:输出处理后的前5行数据验证
print(df.head())

关键说明:

  • 需提前安装Pandas:执行pip install pandas
  • sep='\s+'解决示例中多空格分隔导致的列读取错位问题
  • 日期格式%d/%m/%Y %H:%M完全匹配示例中的日期格式,确保解析正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:41:06