[英]Convert pandas column of Object dtype into time datetime (with micro seconds)
我的 df 看起來像這樣。 我嘗試了很多方法來轉換時間: hour:minute:second microseconds
,但碰壁了。 波紋管是sample.df。 我需要時間和微秒( 00:00:02 948
之后的 3 個數字,因此該行中的微秒為:948。如何使 object 的另一列 pandas 能夠與稍后快速矢量化(不迭代)。我不需要年、月、日、日期。只需要時間,以微秒為單位,以 pd 可以接受的方式格式化,比如制作聚合時間間隔等。任何想法都會不勝感激!
idx, time, col2, col3, col4, col5, col6
0 00:00:02 948 41 14 34 36 55
1 00:00:03 228 44 -12 32 41 55
你只有一個“timedelta”,而不是一個日期時間。 因此,通過將其轉換為日期時間,pandas 假定時間在 1900-01-01 之后,因為這就是定義(時間戳為 0)。
我不完全了解您的 output 應該是什么樣子,所以如果我誤解了,請隨時詢問如何更改它。
您可以獨立訪問分鍾/秒/微秒的屬性並將它們格式化如下:
import pandas as pd
df = pd.DataFrame(columns=["time"], data=["00:00:02 948", "00:00:03 228"])
df["time"] = pd.to_datetime(df["time"], format='%H:%M:%S %f').apply(lambda dt: f"{dt.minute:02d}:{dt.second:02d}.{dt.microsecond:06d}")
輸出:
time
0 00:02.948000
1 00:03.228000
如果您只想獲取秒和微秒,只需從格式中刪除dt.minute
。
pd.to_datetime(df["time"], format='%H:%M:%S %f').apply(lambda dt: f"{dt.second:02d}.{dt.microsecond:06d}")
time
0 02.948000
1 03.228000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.