簡體   English   中英

如何將小時分鍾和秒數放在數據框中而不是年,月和日?

[英]How to just put Hours Minutes and seconds in data frame instead of Year , months and days?

我想繪制心電圖的線圖,單位為mV ,時間為HH:MM:SS:MMM 它是一個10秒的心電圖帶。

  1. ECG CSV文件的圖象有兩個ECG值和時間的

我已經提取了Time列,現在我想轉換python數據幀中的時間列,然后在圖上繪制它

但是當我應用to_datetime()函數時,它會給我以下錯誤

要組裝映射,至少需要指定[年,月,日]:[日,月,年]缺失

  1. 我得到的錯誤的屏幕截圖

請幫我解決這個錯誤,我只想把%H:%M:%S.%f,因為我沒有年,月和日。

to_timedelta

日期

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

參考: https//stackoverflow.com/a/46801500/1855988

您需要指定要將時間轉換為的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM