Pandas:将列转换为timedelta64

问题描述 投票:0回答:1

我尝试将CS​​V文件读取为熊猫数据框。在列名旁边,我得到了预期的dtype。我的方法是:

  1. 读取具有推断列类型的CSV(因为我希望能够捕捉问题)
  2. 读取期望的列类型
  3. 迭代列并尝试用'astype'进行转换

现在,我有十亿分之一秒的时间增量。它们以float64的形式读取,并且可能包含缺失值。 'astype'失败,并显示以下消息:

ValueError: Cannot convert non-finite values (NA or inf) to integer

这个小脚本可以重现我的问题。方法'to_timedelta'对我的数据有效,而转换给出错误。

import pandas as pd
import numpy as np

timedeltas  = [200800700,30020010030,np.NaN]
data = {'timedelta': timedeltas}

pd.to_timedelta(timedeltas)

df = pd.DataFrame(data)

df.dtypes

df['timedelta'].astype('timedelta64[ns]')

有人可以帮助解决此问题吗?除了[ns0]之外,还有纳秒以外的其他保存表示形式吗?

python pandas timedelta
1个回答
0
投票

感谢'astype'

无法使用MrFuppes,但是astype()有效。谢谢!

to_timedelta
© www.soinside.com 2019 - 2024. All rights reserved.