【问题标题】:Change date from 0-100 to dd-mm-yy将日期从 0-100 更改为 dd-mm-yy
【发布时间】:2019-04-15 15:21:36
【问题描述】:

我有一列从 0-100 的日期,其中值可以重复多次,但 0 实际上是 2018 年 8 月 1 日,我该如何解决所以 0 = dd-mm-yy (01-08 -2018 年),其余订单继续作为最后一个订单(09-09-2018)

例子:

ID Sale Date
1 .  4     0
2 .  2     0
3 .  10    1
4 .  1     1
5 .  30    100  

【问题讨论】:

  • 请分享你自己的尝试

标签: python arrays date python-datetime


【解决方案1】:

使用 2018 年 8 月 1 日作为“基准”,并在其中添加 timedelta。作为示范:

from datetime import datetime, timedelta

base = datetime(2018, 8, 1)

for d in range(101):
    date = base + timedelta(days=d)
    print(d, date.strftime('%d-%m-%Y'))

【讨论】:

    【解决方案2】:

    创建一个基准日期并使用 timedelta 以根据您在 Date 列中的值增加天数:

    from datetime import datetime, timedelta
    ​
    def update_date(row):
        return row.parsed_date + timedelta(days=row.Date)
    ​
    df = pd.DataFrame({
        'ID': [1 , 2 , 3 , 4 , 5],
        'Sale': [4 , 2 , 10, 1 , 30],
        'Date': [0, 0, 1, 1, 100],
    })
    ​
    df['parsed_date'] = datetime(2018, 8, 1, 0, 0)
    df['parsed_date'] = df.apply(update_date, axis=1)
    

    会导致:

          ID    Sale    Date    parsed_date
    0      1    4      0        2018-08-01
    1      2    2      0        2018-08-01
    2      3    10     1        2018-08-02
    3      4    1      1        2018-08-02
    4      5    30     100      2018-11-09
    

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多