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

如何从多个CSV文件按表头批量提取指定列合并生成总CSV文件

解决方案

PowerShell 优化方案(适配现有技术栈)

核心优化逻辑是把需要提取的列名统一维护在一个数组中,通过循环动态生成计算属性配置,无需手动逐个编写20+次列定义,仅需一次维护列名列表即可。
完整可运行代码:

# ========== 仅需修改以下配置部分 ==========
# 主键列名,两个CSV中都需要存在该列用于关联匹配
$joinKey = "HBA_ID"
# 待提取列名列表,20+列直接按格式追加到数组中即可
$columnsToExtract = @(
    "TOPF_IQ_Zscore",
    "TMT_A_Zscore"
    # 后续需要新增的列直接按上面的格式加在这里
)
# 文件路径配置
$primaryCsvPath = $inputFilePath1 # 提供提取列的CSV路径
$secondaryCsvPath = $inputFilePath2 # 待合并的基础CSV路径
$outputFilePath = "master_file.csv" # 最终输出文件路径
# ========== 以下逻辑无需修改 ==========
# 加载主键映射表
$primaryMapping = [ordered]@{}
Import-Csv -Path $primaryCsvPath | ForEach-Object {
    # 自动跳过重复主键,避免报错
    if (-not $primaryMapping.Contains($_.$joinKey)) {
        $primaryMapping[$_.$joinKey] = $_
    }
}
# 动态生成计算属性列表
$calcProperties = $columnsToExtract | ForEach-Object {
    $currentCol = $_
    @{
        Name = $currentCol
        Expression = { $primaryMapping[$_.$joinKey].$currentCol }.GetNewClosure()
    }
}
# 合并并导出结果
Import-Csv -Path $secondaryCsvPath | Select-Object *, $calcProperties | Export-Csv -Path $outputFilePath -NoTypeInformation -Encoding UTF8

更简洁的Python实现(可选)

如果可以接受使用Python,用pandas库处理CSV合并逻辑更精简,代码量更少:

import pandas as pd
# 配置部分
join_key = "HBA_ID"
# 待提取列名列表,直接追加即可
columns_to_extract = [
    "TOPF_IQ_Zscore",
    "TMT_A_Zscore"
]
# 文件路径
primary_path = "第一个CSV路径.csv"
secondary_path = "第二个CSV路径.csv"
output_path = "master_file.csv"
# 读取并合并
df_primary = pd.read_csv(primary_path, usecols=[join_key] + columns_to_extract).drop_duplicates(join_key)
df_secondary = pd.read_csv(secondary_path)
df_merged = df_secondary.merge(df_primary, on=join_key, how="left")
# 导出结果,utf-8-sig编码兼容Excel打开
df_merged.to_csv(output_path, index=False, encoding="utf-8-sig")

注意事项

  • 关联主键需保证在两个CSV中都存在,值格式保持一致
  • 如果需要合并2个以上的CSV,仅需在配置部分追加文件路径,扩展对应合并逻辑即可
  • 导出时指定UTF8编码可避免非英文字符乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:02