【问题标题】:Cannot astype timedelta using pandas? [duplicate]无法使用熊猫键入 timedelta? [复制]
【发布时间】:2019-04-29 00:09:54
【问题描述】:

运行我的代码时出现以下错误:

    import pandas as pd
    data = pd.read_csv('file.csv')
    data['time'] = pd.to_datetime(data['UNIX time'],unit='s')
    data['time_min'] = (data['time'] - data['time'].min()).astype(int)

“不能输入从 [timedelta64[ns]] 到 [int32] 的时间增量”

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    您可以使用Timedelta.days 从结果中提取日期,将其保存为int:

    sol = (data['time'] - data['time'].min()).apply(lambda x: x.days)
    
    print(sol)
    0     0
    1     0
    2    14
    3    14
    
    print(sol.apply(type))
    0    <class 'int'>
    1    <class 'int'>
    2    <class 'int'>
    3    <class 'int'>
    

    【讨论】:

    • 不要使用apply,因为如果缺少值会失败。
    • 确实我不再有错误使用这个但它没有给出我期望的结果
    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 2018-08-03
    • 2019-05-12
    • 2018-12-23
    • 1970-01-01
    • 2019-03-21
    • 2019-03-08
    相关资源
    最近更新 更多