[英]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.