【问题标题】:Pandas to time delta with only hours minutes and seconds熊猫时间增量只有小时分钟和秒
【发布时间】:2021-07-01 13:46:49
【问题描述】:

在我的脚本中,我提取了一个 Excel,在一个名为“时间”的列中是 dtype 对象,在该列中有一个小时,例如“14:00:00”,我想将该列转换为 to_datetime,但是当我这样做时:

df['Time']=pandas.to_datetime(df['Time'],format='%H:%M:%S')

我在其中添加了年份月份和日期,我不希望这种情况发生,我还希望将该列保留为日期时间,这样我就可以减去另一个时间并获得秒数。 我怎样才能将它传递给只有小时分钟和秒的日期时间?

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:

    使用Series.dt.time:

    import pandas as pd
    
    # sample
    df = pd.DataFrame({'Time': ['00:00:05', '00:00:10', '00:10:00']})
    
    df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S').dt.time
    
    print(type(df.Time[0]))
    [out]:
    <class 'datetime.time'>
    

    要加或减time,你可以这样做:

    pd.Timedelta(df.Time - t1).seconds / 3600.0
    

    【讨论】:

      【解决方案2】:

      你可以使用timedelta:

      df['Time'] = pd.to_timedelta(df['Time'])
      

      计算分钟数:

      pd.to_timedelta(df.time).dt.seconds/60
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-15
        • 2014-06-25
        相关资源
        最近更新 更多