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

如何去除Pandas to_records()输出中Timestamp的时间后缀,仅保留纯日期字符串

解决办法

我来给你几个实用的方案,帮你去掉多余的时间后缀,得到想要的纯日期元组列表:

方法1:先格式化日期列,再生成元组

先把scanned_date列的Timestamp对象转换成仅包含日期的字符串,再直接生成元组列表:

import pandas as pd

# 假设你的DataFrame是df
df['scanned_date'] = df['scanned_date'].dt.strftime('%Y-%m-%d')
result = list(df.itertuples(index=False, name=None))

处理后result就是你需要的[('2021-11-01', 0), ('2021-11-02', 0), ...]格式。

方法2:不修改原DataFrame,用列表推导式处理

如果你不想改动原DataFrame的数据,可以直接遍历每行,单独格式化日期:

result = [(row.scanned_date.strftime('%Y-%m-%d'), row.total) 
          for row in df.itertuples(index=False)]

这个方式更灵活,完全不会影响原数据的结构。

方法3:基于to_records()做二次处理

如果你一定要用to_records()方法,也可以对生成的结果做后续处理——其实to_records()返回的日期还是Timestamp对象,不是字符串,所以直接调用strftime()格式化就行:

records = list(df.to_records(index=False))
result = [(date.strftime('%Y-%m-%d'), total) for date, total in records]

这里不用去手动截取字符串(比如去掉T00:00:00.000000000),直接用Timestamp的格式化方法更可靠,能避免格式不一致的问题。

小提示:to_records()显示时间后缀只是它的默认字符串表现形式,实际存储的还是Timestamp对象,所以用日期格式化方法是最稳妥的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:17:41