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

如何合并多个CSV文件并按指定时间列对行进行排序

合并多份分号分隔CSV并按日期列排序解决方案

你的CSV采用;作为分隔符,日期位于第三列且格式为YYYY/MM/DD HH:MM:SS,该格式的字符串排序顺序和时间顺序完全一致,可直接按列排序无需额外转换。

方案1:Linux/macOS 命令行(适合大文件,执行效率最高)

  • 若文件包含表头,先单独提取表头到结果文件,避免排序时表头混入数据:
    head -n 1 a.csv > merged_sorted.csv
  • 合并所有CSV的内容(跳过表头),按第三列排序后追加到结果文件:
    tail -q -n +2 *.csv | sort -t';' -k3 >> merged_sorted.csv
  • 若文件无表头,直接执行以下命令即可:
    cat *.csv | sort -t';' -k3 > merged_sorted.csv

参数说明:-t';'指定分隔符为分号,-k3指定按第三列排序。

方案2:Windows PowerShell 方案

  • 若文件包含表头,执行以下命令:
Get-ChildItem -Path . -Filter *.csv | ForEach-Object { Import-Csv $_.FullName -Delimiter ';' } | Sort-Object -Property $_.PSObject.Properties.Name[2] | Export-Csv -Path merged_sorted.csv -Delimiter ';' -NoTypeInformation -Encoding UTF8
  • 若文件无表头,可手动指定列名后排序:
Get-ChildItem -Path . -Filter *.csv | ForEach-Object { Import-Csv $_.FullName -Delimiter ';' -Header 'ID','Content','Date','Extra' } | Sort-Object Date | Export-Csv -Path merged_sorted.csv -Delimiter ';' -NoTypeInformation -Encoding UTF8

可根据实际字段含义调整-Header后的列名。

方案3:Python 跨平台方案(适合中小文件,自定义性强)

  • 先安装依赖:pip install pandas
  • 运行以下代码:
import pandas as pd
import glob

# 读取当前目录下所有csv文件
all_files = glob.glob("*.csv")
df_list = []
for file in all_files:
    # 有表头设置header=0,无表头设置header=None并通过names参数指定列名
    df = pd.read_csv(file, sep=';', header=0)
    df_list.append(df)

# 合并所有数据
merged_df = pd.concat(df_list, ignore_index=True)
# 按日期列排序,替换为你实际的日期列名
sorted_df = merged_df.sort_values(by="日期列名")

# 导出结果,不保存索引列
sorted_df.to_csv('merged_sorted.csv', sep=';', index=False, encoding='utf-8')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:36:04