【问题标题】:Splitting a Graphlab SFrame Date column into three columns (Year Month Day)将 Graphlab SFrame 日期列拆分为三列(年月日)
【发布时间】:2016-02-20 22:03:51
【问题描述】:

给定一个graphlabSFrame,其中有一列包含日期,例如:

+-------+------------+---------+-----------+
| Store |    Date    |  Sales  | Customers |
+-------+------------+---------+-----------+
|   1   | 2015-07-31 |  5263.0 |   555.0   |
|   2   | 2015-07-31 |  6064.0 |   625.0   |
|   3   | 2015-07-31 |  8314.0 |   821.0   |
|   4   | 2015-07-31 | 13995.0 |   1498.0  |
|   3   | 2015-07-20 |  4822.0 |   559.0   |
|   2   | 2015-07-10 |  5651.0 |   589.0   |
|   4   | 2015-07-11 | 15344.0 |   1414.0  |
|   5   | 2015-07-23 |  8492.0 |   833.0   |
|   2   | 2015-07-19 |  8565.0 |   687.0   |
|   10  | 2015-07-09 |  7185.0 |   681.0   |
+-------+------------+---------+-----------+
[986159 rows x 4 columns]

graphlab/其他python函数中是否有一种简单的方法可以将日期列转换为年|月|日?

+-------+------+----+----+---------+-----------+
| Store | YYYY | MM | DD |  Sales  | Customers |
+-------+------+----+----+---------+-----------+
|   1   | 2015 | 07 | 31 |  5263.0 |   555.0   |
|   2   | 2015 | 07 | 31 |  6064.0 |   625.0   |
|   3   | 2015 | 07 | 31 |  8314.0 |   821.0   |
+-------+------------+---------+-----------+
[986159 rows x 4 columns]

在pandas,我可以这样做:Which is the fastest way to extract day, month and year from a given date?

但是将 SFrame 转换为 Panda 以拆分日期并转换回 SFrame 是一件很麻烦的事。

【问题讨论】:

    标签: python date pandas dataframe graphlab


    【解决方案1】:

    您也可以使用 split-datetime 方法来做到这一点。它为您提供了更多的灵活性。

    sf.add_columns(sf['Date'].split_datetime(column_name_prefix = ''))
    

    split_datetime 方法本身位于 SArray(SFrame 的单列)上,它返回一个 SFrame,然后您可以将其添加回原始数据(基本上是 0 成本)

    【讨论】:

      【解决方案2】:

      一个快速而肮脏的方法是

      sf['date2'] = sf['Date'].apply(lambda x: x.split('-'))
      sf = sf.unpack('date2')
      

      另一种选择是将Date 列转换为日期时间类型,然后使用graphlab.SArray.split_datetime 函数。

      【讨论】:

        猜你喜欢
        • 2011-09-26
        • 2021-12-17
        • 2019-02-20
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-07
        相关资源
        最近更新 更多