代码之家  ›  专栏  ›  技术社区  ›  Dmitriy Kisil

无法使用正确格式化datetime中的dataframe列pd.至日期时间()

  •  0
  • Dmitriy Kisil  · 技术社区  · 8 年前

    我有数据框 df 带列 date number . 这些列具有数据类型 object df[date] 到 datetime64[ns] 这一栏看起来应该完全一样。我被阅读了 this 并在此基础上选择了表达式作为格式(希望这个表达式看起来不错)。 我的 看起来像这样:

            date number
    0  Tue 14-08      3
    1  Wed 15-08      5
    2  Thu 16-08     10
    3  Fri 17-08     18
    4  Sat 18-08     22
    

    df["date"] = pd.to_datetime(df["date"], format = "%a %d-%m")
    

    以及 df["date"] 日期时间64[ns]

            date number
    0 1900-08-14      3
    1 1900-08-15      5
    2 1900-08-16     10
    3 1900-08-17     18
    4 1900-08-18     22
    

    我也用过这个(但结果和上面一样):

    df['date'] = df['date'].apply(lambda x: datetime.datetime.strptime(x,'%a %d-%m'))
    

    还有这个( df[“日期”] 对象 日期时间64[ns]

    df['date'] = df['date'].apply(lambda x: datetime.datetime.\
                                  strptime(x,'%a %d-%m').strftime("%a %d-%m"))
    

    要复制的代码:

    #import all what we need
    import pandas as pd
    import datetime
    #Create DataFrame
    df = pd.DataFrame({"date":["Tue 14-08",
                               "Wed 15-08",
                               "Thu 16-08",
                               "Fri 17-08",
                               "Sat 18-08"],
                       "number":["3","5","10","18","22"]})
    print(df.dtypes)
    print(df)
    #Convert df["date"] column in datetime64[ns]
    df["date"] = pd.to_datetime(df["date"], format = "%a %d-%m")
    #df['date'] = df['date'].apply(lambda x: datetime.datetime.strptime(x,'%a %d-%m'))
    #df['date'] = df['date'].apply(lambda x: datetime.datetime.\
    #                              strptime(x,'%a %d-%m').strftime("%a %d-%m"))
    #Check df
    print(df.dtypes)
    print(df)
    
    0 回复  |  直到 8 年前