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

如何去除Timestamp列表中的微秒并转为字符串?报错求助

问题原因

你触发TypeError: 'list' object is not callable的核心原因是调用map时写错了函数名——你定义的处理函数是ts1,但你写了times;如果之前有同名的列表变量,就会出现“列表对象不可调用”的错误。

解决方案

下面提供几种可行的实现方式,都能得到你想要的结果:

方案1:修正你的原代码

直接把函数名改对即可:

import pandas as pd
from datetime import datetime

ab = pd.date_range(start='2018-04-24', end='2018-04-27', periods=50)
ab = ab[:5].tolist()

def ts1(times):
    return times.strftime("%Y-%m-%d %H:%M:%S")

# 把times改成ts1
result = list(map(ts1, ab))
print(result)

方案2:用lambda简化写法

不用单独定义函数,一行搞定:

result = list(map(lambda x: x.strftime("%Y-%m-%d %H:%M:%S"), ab))

方案3:Pandas原生批量处理(更高效)

如果还没把DatetimeIndex转成列表,直接用Pandas的strftime批量处理后转列表:

ab = pd.date_range(start='2018-04-24', end='2018-04-27', periods=50)[:5]
result = ab.strftime("%Y-%m-%d %H:%M:%S").tolist()

方案4:先截断微秒再转字符串

如果想先去除Timestamp的微秒属性再转字符串,可以这么写:

result = [str(x.replace(microsecond=0)) for x in ab]

以上所有方案的输出结果都是:

['2018-04-24 00:00:00',
 '2018-04-24 01:28:09',
 '2018-04-24 02:56:19',
 '2018-04-24 04:24:29',
 '2018-04-24 05:52:39']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:11:05