【问题标题】:specify datetime week number format指定日期时间周数格式
【发布时间】:2020-03-14 20:24:40
【问题描述】:

有人知道是否可以在 uint8 而不是 int64 中默认获取日期的周数?

现在我做:

df['sales_week'] = df['sales_date'].dt.week
df.astype({'sales_week': 'uint8'})

但是,它可能不是最佳内存,是吗?

使用.week属性时是否可以指定格式?

【问题讨论】:

    标签: python pandas datetime memory format


    【解决方案1】:

    您可以使用astype 方法立即转换它。

    import pandas as pd
    
    df = pd.DataFrame({'sales_date': ['2019-11-15', '2019-11-16'], 'Z':['abc', 'def']})
    df.sales_date = pd.to_datetime(df.sales_date)
    df['sales_week'] = df.sales_date.dt.week.astype(pd.np.int8)
    
    df.sales_week
    # returns:
    0    46
    1    46
    Name: sales_week, dtype: int8
    

    【讨论】:

    • OP 知道他们可以使用astype,他们在问题中已经说了很多。他们担心的是内存浪费,他们是对的:调用astype 意味着pandas 首先生成一个int64 列,然后立即丢弃该列。因此,他们提出了关于直接获得int8 的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多