我目前在两台不同的计算机上工作,但在两台计算机上运行完全相同的代码会导致两台计算机中的一台生成:
ValueError: cannot create timedelta string converter for [-1 days +23:05:00.000000000]
错误是由命令引起的:
df_gt["Duration"] = pd.to_timedelta(df_gt[ "Duration"])
df 是通过 csv 导入创建的:
df_gt = pd.read_csv(gt_data, sep='\t', header=(0))
首先,我以为错误是由负数引起的。我以前见过负数的问题,但这在另一台计算机上应该是同样的问题。
然后,我想知道这是否可能是由于这台计算机上生成其他格式的不同 csv/time 设置引起的,但是当打印值时,我得到完全相同的格式(至少通过目视检查)。我仍然认为问题出在这个域的某个地方,但我不确定其他计算机如何影响这个内部代码。
一些硬件信息:
一切正常的计算机正在运行 Windows 10 家庭版,并使用 Pycharm Professional 2017.1。另一个正在运行 Windows 7 Professional sp 1 并使用 Spyder 2.3.1。代码在 Python 3 中。
提前致谢
杰夫
编辑:
原题中还有
.total_seconds()
附加到命令,这是错误的。 (只是我自己尝试解决这个问题)
最佳答案
也许需要.dt
:
df_gt["Duration"] = pd.to_timedelta(df_gt[ "Duration"]).dt.total_seconds()
似乎是不同版本的 pandas,所以最旧的版本有问题。
版本 0.14.1
已发布 July 11 2014 .
版本 0.20.1
已发布 May 5 2017 .
关于python - 为什么 timedelta 命令会在另一台计算机上产生错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45455912/