2 回答

TA贡献1859条经验 获得超6个赞
这是一种涉及制作新 DataFrame 的方法。
new_df = pd.DataFrame(data=[
[i, row['valCol']]
for idx, row in df.iterrows()
for i in range(*row[['startTime', 'endTime']].astype(int))
], columns=['x', 'y'])
new_df.plot(x='x', y='y')
plt.show()

TA贡献1799条经验 获得超9个赞
这是我的方法:
# get min and max time
min_time, max_time = df['startTime'].min(), df['endTime'].max()
# set startTime as index
df.set_index('startTime', inplace=True)
# reindex to new time range
# if your start/end times are actual timestamp
# use pd.daterange(min_time, max_time, freq='your_freq')
df = df.reindex(np.arange(min_time, max_time))
# ffill values
df['valCol'] = df['valCol'].ffill()
# plot
df['valCol'].plot()
输出:
添加回答
举报