我将如何获取时间序列的最后一个值?
我在很多国家都有时间序列信息的df,它跟踪多个变量并进行一些简单的平均等。
我只想获取每个国家/地区的最新值,并用绘图方式将其绘制成图形。我已经尝试过使用.last()了,但不确定如何将其放入循环中。
我需要同时获取一个图表的最后一个值和另一个图表的最后n个值。
# Daily Change
country = "X"
#Plot rolling average new cases
data = [go.Scatter(x=df_join.loc[f'{country}']['Date'],
y=df_join.loc[f'{country}']['Pct Change'],
mode='lines',
name='Pct Change')]
layout = go.Layout(title=f'{country}: Pct Change')
fig = go.Figure(data=data, layout=layout)
pyo.plot(fig)
IIUC,您需要先过滤数据框:
dates = pd.date_range(pd.Timestamp('today'),pd.Timestamp('today') + pd.DateOffset(days=5))
df = pd.DataFrame({'Date' : dates, 'ID' : ['A','A','A','B','B','B']})
df2 = df.loc[df.groupby(['ID'])['Date'].idxmax()]
print(df2)
Date ID
2 2020-05-16 12:26:06.772939 A
5 2020-05-19 12:26:06.772939 B