Преобразовать время в числовое датафрейм
Как из такого:
получить такое:
код по типу такого не работает:
df["Time"] = pd.to_datetime(df['Time']).dt.strftime('%H%M%S')
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример:
In [238]: df = pd.read_csv("sec.csv", index_col=0)
In [239]: df.dtypes
Out[239]:
Date object
Time object
dtype: object
In [240]: df["Time_int"] = pd.to_numeric(df["Time"].str.replace(":", "")).astype(int)
In [241]: df
Out[241]:
Date Time Time_int
0 6/2/2020 0:00:00 0
1 6/2/2020 0:00:01 1
2 6/2/2020 0:00:02 2
3 6/2/2020 0:00:03 3
4 6/2/2020 0:00:04 4
... ... ... ...
30436 6/2/2020 8:27:16 82716
30437 6/2/2020 8:27:17 82717
30438 6/2/2020 8:27:18 82718
30439 6/2/2020 8:27:19 82719
30440 6/2/2020 8:27:20 82720
[30441 rows x 3 columns]
In [242]: df.dtypes
Out[242]:
Date object
Time object
Time_int int64 # <--- NOTE !!!
dtype: object
PS но правильнее было бы хранить дату и время с типом данных datetime64 и преобразовывать в нужный формат только для вывода / отчетов / экспорта:
In [170]: df["DT"] = pd.to_datetime(df["Date"] + " " + df["Time"].astype(str).str.zfill(6))
In [171]: df
Out[171]:
Date Time Time_int DT
0 6/02/2020 00:00:00 0 2020-06-02 00:00:00
1 6/02/2020 00:00:01 1 2020-06-02 00:00:01
2 6/02/2020 00:00:02 2 2020-06-02 00:00:02
3 6/02/2020 23:59:59 235959 2020-06-02 23:59:59
In [172]: df.dtypes
Out[172]:
Date object
Time object
Time_int int64
DT datetime64[ns]
dtype: object

