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

如何在导出Pandas数据到CSV前按日期升序排序并保留指定格式

Pandas按日期排序并保留指定格式导出CSV

核心解决方案

先将日期列转为datetime类型实现正确排序,再转回原格式字符串后导出,就能同时满足排序逻辑和格式要求。

完整代码示例

import pandas as pd

data_to_export = {
    "Company Name": ["Mcdonalds", "Burgerking"],
    "Delivery Address": ["123 lake rd", "124 west rd"],
    "Date": ["3/30/24", "1/23/24"],
    "Customer Name": ["Zack", "Peter"],
}

# 1. 转换DataFrame并将日期转为datetime类型(用于正确排序)
df = pd.DataFrame(data_to_export)
df["Date"] = pd.to_datetime(df["Date"], format="%m/%d/%y")

# 2. 按日期升序排序(从早到晚)
df.sort_values(by="Date", inplace=True)

# 3. 将datetime转回原格式的字符串(月/日/年)
# 若需要去掉前导零(如1/23/24而非01/23/24),用下方注释的代码替代本行
df["Date"] = df["Date"].dt.strftime("%m/%d/%y")
# df["Date"] = df["Date"].dt.strftime("%m/%d/%y").apply(lambda x: '/'.join([part.lstrip('0') if part.lstrip('0') else '0' for part in x.split('/')]))

# 4. 导出CSV
df.to_csv("output.csv", index=False)

问题原因说明

  • 直接用字符串排序:会按字典序排列(比如"10/1/24"会排在"2/1/24"前面,逻辑错误)
  • 转datetime后直接导出:Pandas默认会将datetime对象序列化为ISO格式(如2024-01-23),不符合"月/日/年"的格式要求

内容的提问来源于stack exchange,提问作者A Beautiful Trend

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:47:32