使用 Python 将 datetime64 转换为整数小时

Convert datetime64 to integer hours using Python

我有以下数据框

        Timestamp           KE          EH  LA       PR
0       2013-02-27 00:00:00 1.000000    2.0 0.03    201.289993
1       2013-02-27 00:15:00 0.990000    2.0 0.03    210.070007
2       2013-02-27 00:30:00 0.950000    2.0 0.02    207.779999
3       2013-02-27 00:45:00 0.990000    2.0 0.03    151.960007
4       2013-02-27 01:00:00 341.209991  2.0 0.04    0.000000
... ... ... ... ... ...
3449    2013-04-03 22:15:00 NaN         2.0 0.03    0.000000
3450    2013-04-03 22:30:00 NaN         NaN 0.07    0.000000

我想将时间戳列转换为数值,同时仅保留 'time',如下图所示

        Timestamp           KE          EH  LA       PR
0       0                   1.000000    2.0 0.03    201.289993
1       15                  0.990000    2.0 0.03    210.070007
2       30                  0.950000    2.0 0.02    207.779999
3       45                  0.990000    2.0 0.03    151.960007
4       100                 341.209991  2.0 0.04    0.000000
... ... ... ... ... ...
3449    2215                NaN         2.0 0.03    0.000000
3450    2230                NaN         NaN 0.07    0.000000

我根据此 post[在此处输入 link 描述尝试了下面的代码][1]

h3_hours["Timestamp"] = h3_hours["Timestamp"].astype(str).astype(int)

但这给了我下面的错误

ValueError: invalid literal for int() with base 10: '2013-02-27 00:00:00'

然后在网上找到了这个方法

# Turn datetime into hours and minutes
h3_hours["Timestamp"] = h3_hours["Timestamp"].dt.strftime("%H:%M")

h3_hours["Timestamp"] = h3_hours["Timestamp"].astype(int)

但这给了我和上面一样的错误。

知道如何将我的时间戳列转换为整数小时吗? [1]:

你很接近,需要删除 %H%M 中的 : 以获得 HHMM 格式:

h3_hours["Timestamp"] = h3_hours["Timestamp"].dt.strftime("%H%M").astype(int)