【问题标题】:Pandas Datetime Formatting熊猫日期时间格式
【发布时间】:2016-08-04 18:27:01
【问题描述】:

目前我的日期被格式化为字符串。我能够使用以下方法将字符串转换为日期时间:

df['submitted_on'] = df['submitted_on'].apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f'))

我想删除时间戳,但这样做非常困难。我的首选格式是%Y%m%d。所以我偶然发现了THIS 页面并添加了.date()。结果如下:

df['submitted_on'] = df['submitted_on'].apply(lambda x: dt.datetime.strptime(x, '%Y%m%d').date())

我收到此值错误,我再次迷失了如何删除时间戳。非常感谢任何帮助。

ValueError: 时间数据 '2015-02-26 16:45:36.0' 与格式 '%Y%m%d' 不匹配

【问题讨论】:

  • 请发布一个示例DataFrame。

标签: python datetime pandas


【解决方案1】:

您可以将Timestamp 对象转换为datetime.datetime 对象并提取datetime.date 部分,如图所示:

In [7]: import pandas as pd

In [8]: print(pd.Timestamp('2015-02-26 16:45:36.0').to_datetime().date())
2015-02-26
<class 'datetime.date'>

您想要的格式:

In [11]: print(pd.Timestamp('2015-02-26 16:45:36.0').to_datetime().date().strftime("%Y%m%d"))
20150226
<class 'str'>

【讨论】:

    【解决方案2】:

    您可以使用normalize (docs)。

    dti = pd.DatetimeIndex(start='today', periods=4, freq='D')
    dti
    

    输出

    DatetimeIndex(['2016-08-04 14:30:34.447589', '2016-08-05 14:30:34.447589',
                   '2016-08-06 14:30:34.447589', '2016-08-07 14:30:34.447589'],
                  dtype='datetime64[ns]', freq='D')
    

    dti.normalize()
    

    输出

    DatetimeIndex(['2016-08-04', '2016-08-05', '2016-08-06', '2016-08-07'], dtype='datetime64[ns]', freq='D')
    

    如果是一系列时间戳,您可以使用地图进行转换。

    编辑:@piRSquared 的方式在这种情况下更好。

    pd.to_datetime(dti).map(lambda dt: dt.date())
    

    输出

    array([datetime.date(2016, 8, 4), datetime.date(2016, 8, 5),
           datetime.date(2016, 8, 6), datetime.date(2016, 8, 7)], dtype=object)
    

    【讨论】:

    • 谢谢亚历克斯。将 dti.normalize() 应用于我的整个数据框是否可行,还是应该只对日期时间列进行规范化?
    【解决方案3】:
    s = pd.Series(['2010-01-01 10:00', '2010-06-01 11:00'])
    
    pd.to_datetime(pd.to_datetime(s).dt.date)
    

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 2021-02-17
      • 2020-06-04
      • 2020-02-21
      • 2018-07-05
      • 2019-02-24
      • 2019-03-18
      • 2017-04-23
      相关资源
      最近更新 更多