【问题标题】:How to combine 3 separate columns of year(2 digit) ,month and day into single date column如何将 3 个单独的年(2 位)、月和日列组合成单个日期列
【发布时间】:2019-07-11 16:02:35
【问题描述】:

我将年、月和日的 3 个单独列组合到我的数据框的单个列中。但是年份是 2 位数字,这是错误的。

我已经尝试to_datetime() 在 jupyter notebook 中做同样的事情

Dataframe 是这样的形式:

Yr Mo Dy   RPT   VAL   ROS   KIL   SHA   BIR   DUB   CLA   MUL   CLO   BEL   
61  1  1 15.04 14.96 13.17  9.29   NaN  9.87 13.67 10.25 10.83 12.58 18.50 
61  1  2 14.71   NaN 10.83  6.50 12.62  7.67 11.50 10.04  9.79  9.67 17.54 
61  1  3 18.50 16.88 12.33 10.13 11.17  6.17 11.25   NaN  8.50  7.67 12.75 


data.rename(columns={'Yr':'Year','Mo':'Month','Dy':'Day'},inplace=True)
data['Date']=pd.to_datetime(data[['Year','Month','Day']],format='%y%m%d')

我得到的错误是:

无法组装日期时间:时间数据 610101 与格式 '%Y%m%d' 不匹配(匹配)

【问题讨论】:

    标签: python pandas data-science


    【解决方案1】:

    to_datetime 指定列有问题['Year','Month','Day'] 需要YYYY 格式,因此需要替代解决方案,因为年份仅是YY

    s = data[['Yr','Mo','Dy']].astype(str).apply('-'.join, 1)
    data['Date'] = pd.to_datetime(s, format='%y-%m-%d')
    print (data)
       Yr  Mo  Dy    RPT    VAL    ROS    KIL    SHA   BIR    DUB    CLA    MUL  \
    0  61   1   1  15.04  14.96  13.17   9.29    NaN  9.87  13.67  10.25  10.83   
    1  61   1   2  14.71    NaN  10.83   6.50  12.62  7.67  11.50  10.04   9.79   
    2  61   1   3  18.50  16.88  12.33  10.13  11.17  6.17  11.25    NaN   8.50   
    
         CLO    BEL       Date  
    0  12.58  18.50 2061-01-01  
    1   9.67  17.54 2061-01-02  
    2   7.67  12.75 2061-01-03  
    

    【讨论】:

    • @akshaybhatt - 欢迎您!如果我的回答有帮助,请不要忘记accept。谢谢。
    猜你喜欢
    • 2018-06-17
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2019-02-20
    • 2019-12-09
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多