[英]How to just put Hours Minutes and seconds in data frame instead of Year , months and days?
我想繪制心電圖的線圖,單位為mV ,時間為HH:MM:SS:MMM 。 它是一個10秒的心電圖帶。
我已經提取了Time列,現在我想轉換python數據幀中的時間列,然后在圖上繪制它
但是當我應用to_datetime()函數時,它會給我以下錯誤
要組裝映射,至少需要指定[年,月,日]:[日,月,年]缺失
請幫我解決這個錯誤,我只想把%H:%M:%S.%f,因為我沒有年,月和日。
日期 :
df1 = {'Time':['11:20:15.333','10:00:00.444'],'P1':['102','102'],'P2':['240','247']}
df1 = pd.DataFrame(data=df1)
df1
代碼 :
df1['Time'] = pd.to_timedelta(df1['Time'])
df1
結果 :
Time P1 P2
0 11:20:15.333000 102 240
1 10:00:00.444000 102 247
您需要指定要將時間轉換為的format
。 您可以在此處找到有關每個符號含義的更多信息。
# before it is object
df['column_name'] = pd.to_datetime(df['column_name'], format="%H:%M:%S,%f")
df = df.astype('datetime64')
df['column_name'] = pd.to_datetime(df['column_name'], format='%H:%M:%S', errors='coerce').dt.time
# coming back to object
print(df.head())
# print(df.info())
如評論所述,您可以為這些時間添加日期。 日期可以是任意的。 然后,您可以轉換為datetime並使用它們來繪制圖形。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
data = {'Time':['11:20:15.333','12:00:00.444', '13:46:00.100'],
'A':[1,3,2],'B':[5,5,4]}
df = pd.DataFrame(data=data)
df["Date"] = "2019-09-09"
df['Datetime'] = pd.to_datetime(df['Date']) + pd.to_timedelta(df['Time'])
df = df[["Datetime", "A", "B"]].set_index("Datetime")
ax = df.plot(x_compat=True)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%H:%M:%S.%f"))
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.