【问题标题】:Extract day of month as array from datetime column从日期时间列中提取月份中的日期作为数组
【发布时间】:2018-12-24 14:51:55
【问题描述】:

我从一个 .csv 文件中加载了一个 pandas 数据框,该文件包含一个具有日期时间值的列。

df = pd.read_csv('data.csv')

具有日期时间值的列的名称是pickup_datetime。如果我这样做df['pickup_datetime'].head(),这就是我得到的:

0   2009-06-15 17:26:00+00:00
1   2010-01-05 16:52:00+00:00
2   2011-08-18 00:35:00+00:00
3   2012-04-21 04:30:00+00:00
4   2010-03-09 07:51:00+00:00
Name: pickup_datetime, dtype: datetime64[ns, UTC]

如何将此列转换为仅包含日期时间的日期值的 numpy 数组?例如:15 来自0 2009-06-15 17:26:00+00:0005 来自1 2010-01-05 16:52:00+00:00,等等。

【问题讨论】:

    标签: python python-3.x pandas datetime


    【解决方案1】:
    df['pickup_datetime'] = pd.to_datetime(df['pickup_datetime'], errors='coerce')
    df['pickup_datetime'].dt.day.values
    # array([15,  5, 18, 21,  9])
    

    【讨论】:

      【解决方案2】:

      只是添加另一个变体,虽然coldspeed已经提供了作为圣诞节和新年奖金的简要答案:-):

      >>> df
                   pickup_datetime
      0  2009-06-15 17:26:00+00:00
      1  2010-01-05 16:52:00+00:00
      2  2011-08-18 00:35:00+00:00
      3  2012-04-21 04:30:00+00:00
      4  2010-03-09 07:51:00+00:00
      

      通过推断格式将字符串转换为时间戳:

      >>> df['pickup_datetime'] = pd.to_datetime(df['pickup_datetime'])
      >>> df
            pickup_datetime
      0 2009-06-15 17:26:00
      1 2010-01-05 16:52:00
      2 2011-08-18 00:35:00
      3 2012-04-21 04:30:00
      4 2010-03-09 07:51:00
      

      您只能通过pickup_datetime 拍摄当天的照片:

      >>> df['pickup_datetime'].dt.day
      0    15
      1     5
      2    18
      3    21
      4     9
      Name: pickup_datetime, dtype: int64
      

      您只能从pickup_datetime 获取当月的照片:

      >>> df['pickup_datetime'].dt.month
      0    6
      1    1
      2    8
      3    4
      4    3
      

      您只能通过pickup_datetime 拍摄年度照片

      >>> df['pickup_datetime'].dt.year
      0    2009
      1    2010
      2    2011
      3    2012
      4    2010
      

      【讨论】:

        猜你喜欢
        • 2019-01-07
        • 2019-03-20
        • 1970-01-01
        • 1970-01-01
        • 2017-04-05
        • 1970-01-01
        • 1970-01-01
        • 2014-09-28
        相关资源
        最近更新 更多