【问题标题】:pandas: retain hour while setting a constant for date, minutespandas:保留小时,同时为日期,分钟设置常量
【发布时间】:2017-07-20 06:26:03
【问题描述】:

我想通过为年、月、日和分、秒设置一个常量来创建一个新的日期时间列,只保留

import pandas as pd
td = pd.DataFrame(['2015-01-01 09:03:00', '2015-01-11 15:47:00', 
            '2015-01-11 16:47:00', '2015-01-11 01:47:00', '2016-01-11 01:47:00'], columns=['datetime'])
td['datetime'] = pd.to_datetime(td['datetime'])


    datetime
0   2015-01-01 09:03:00
1   2015-01-11 15:47:00
2   2015-01-11 16:47:00
3   2015-01-11 01:47:00
4   2016-01-11 01:47:00

结果应该是这样的。

    datetime
0   1900-01-01 09:00:00
1   1900-01-01 15:00:00
2   1900-01-01 16:00:00
3   1900-01-01 01:00:00
4   1900-01-01 01:00:00

如何编码?谢谢!

【问题讨论】:

    标签: python-2.7 pandas datetime


    【解决方案1】:

    使用pd.to_timedelta

    pd.to_datetime('1900-01-01') + pd.to_timedelta(td.datetime.dt.hour, unit='H')
    
    0   1900-01-01 09:00:00
    1   1900-01-01 15:00:00
    2   1900-01-01 16:00:00
    3   1900-01-01 01:00:00
    4   1900-01-01 01:00:00
    Name: datetime, dtype: datetime64[ns]
    

    【讨论】:

      【解决方案2】:
      td['datetime'].apply(lambda x: datetime(1900, 1, 1) + timedelta(hours=x.hour))
      
      0   1900-01-01 09:00:00
      1   1900-01-01 15:00:00
      2   1900-01-01 16:00:00
      3   1900-01-01 01:00:00
      4   1900-01-01 01:00:00
      Name: datetime, dtype: datetime64[ns]
      

      【讨论】:

        猜你喜欢
        • 2020-03-23
        • 2014-10-29
        • 1970-01-01
        • 2013-04-22
        • 1970-01-01
        • 1970-01-01
        • 2013-12-18
        • 1970-01-01
        相关资源
        最近更新 更多