Need to change 24:00 to 23:00 time for portion of data in Python

后端 未结 2 1321
灰色年华
灰色年华 2021-01-17 04:50

I have data for 2018 and 2017 that uses 24:00 hour times like this:

Hour Ending         X           Y       Z
12/31/2017 24:00    11452.16    1834.87 2856.94         


        
2条回答
  •  难免孤独
    2021-01-17 05:22

    You can use pd.to_timedelta to help:

    s = df['Hour Ending'].str.split()
    df['Hour Ending'] = pd.to_datetime(s.str[0]) + pd.to_timedelta(s.str[1].str.split(':').str[0] +' hours')
    print(df)
    

    Output:

               Hour Ending         X        Y        Z
    0  2018-01-01 00:00:00  11452.16  1834.87  2856.94
    1  2017-12-31 23:00:00  11579.85  1855.94  2898.57
    2  2017-12-31 22:00:00  11754.25  1890.36  2942.23
    3  2017-12-31 21:00:00  11883.11  1907.59  2970.85
    4  2017-12-31 20:00:00  12015.66  1910.72  2989.82
    5  2017-12-31 19:00:00  12061.55  1923.56  3002.77
    6  2017-12-31 18:00:00  11663.43  1891.09  2915.28
    7  2017-12-31 17:00:00  11008.23  1803.92  2871.94
    8  2017-12-31 16:00:00  10904.93  1730.49  2864.33
    9  2017-12-31 15:00:00  11014.92  1673.37  2862.77
    10 2017-12-31 14:00:00  11099.28  1604.28  2853.98
    11 2017-12-31 13:00:00  11088.55  1585.55  2841.05
    12 2017-12-31 12:00:00  10989.86  1578.52  2822.75
    13 2017-12-31 11:00:00  10849.49  1578.38  2802.30
    14 2017-12-31 10:00:00  10600.86  1581.44  2774.18
    15 2017-12-31 09:00:00  10184.76  1532.89  2715.56
    16 2017-12-31 08:00:00   9826.52  1461.63  2672.01
    17 2017-12-31 07:00:00   9556.41  1399.10  2611.86
    18 2017-12-31 06:00:00   9260.16  1341.11  2578.80
    19 2017-12-31 05:00:00   9113.75  1328.50  2581.56
    20 2017-12-31 04:00:00   9025.76  1346.87  2582.43
    21 2017-12-31 03:00:00   9044.65  1343.63  2584.13
    22 2017-12-31 02:00:00   9194.51  1358.57  2600.79
    23 2017-12-31 01:00:00   9444.48  1379.35  2621.97
    24 2017-12-31 00:00:00   9794.90  1426.91  2679.92
    

提交回复
热议问题