Python 如何在没有中断时间的情况下绘制数据帧
我从文件中加载了一个Python 如何在没有中断时间的情况下绘制数据帧,python,pandas,matplotlib,Python,Pandas,Matplotlib,我从文件中加载了一个pandas数据帧。当我画它时,它用一条直线显示所有时间,但我不需要中间休息时间。怎么办 import numpy as np import pandas as pd import matplotlib.pyplot as plt import dateutil,os str_today='2015-12-23' pk_file='D:/20151223_SHSE.000001.pk' start_tradetime=str_today+' 9:30:00';end_tr
pandas
数据帧。当我画它时,它用一条直线显示所有时间,但我不需要中间休息时间。怎么办
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import dateutil,os
str_today='2015-12-23'
pk_file='D:/20151223_SHSE.000001.pk'
start_tradetime=str_today+' 9:30:00';end_tradetime=str_today+' 15:00:00'
f_inx=pd.date_range(start_tradetime,end_tradetime,freq='5s')
symbol='SHSE.000001'
def load_tick_data(pk_file):
fn=pk_file
if os.path.exists(fn):
return pd.read_pickle(fn)
else:
return None
symdata=load_tick_data(pk_file)
symdata.head(10)
plt.ion()
plt.figure(1)
ax1 = plt.subplot2grid((4,1), (0,0), colspan=3,rowspan=3)
#draw
symdata['last_price'].asof(f_inx).plot(ax=ax1)
它有助于将日期时间索引
转换为字符串
表示,如下所示-序列跳转以显示交易中断的“缺失”值:
你能把几段数据上传到一个小文件中,我们可以下载来测试吗?这不是我想要的。我希望它们相互链接。那么.dropna()
(假设缺少值会导致直线)怎么样?如果你能显示你的数据以便更接近,那会有帮助。我已经尝试了.dropna(),但是有一行……顺便问一下,如何上传我的原始数据文件?你可以在你的行开始之前和之后使用时间戳来做df.loc[time\u before:time\u after]
,这样你就可以看到你在这些时间点拥有的数据类型。人们会假设这些是np.nan
,这可能会导致matplolib
插入.dropna
建议,但可能是因为其他原因,您得到了一个常量。df.loc['11:30':'13:00']必须为空,因为当时没有交易。但运行这些之后,DF自动添加数据:f_inx=pd.date_range(开始交易时间,结束交易时间,频率=5s');symdata[‘最后价格’].asof(f_inx)
df = pd.Series(data= np.random.random(size=400), index=pd.date_range(start=datetime(2015,1,1,9,0,0), freq='1Min', periods=400)).cumsum()
df.loc[datetime(2015, 1, 1, 11, 30, 0): datetime(2015, 1, 1, 13, 0, 0)] = np.nan
df.index = df.index.to_series().apply(lambda x: x.strftime('%H:%M'))
df.dropna().plot.line()