python柱形图显示年份_Python:条形图按a)年和b)季度绘制所有年份的值总和

我有时间序列数据,即按日期(YYYY-MM-DD)、回报率、pnl、交易次数:date returns pnl no_trades

1998-01-01 0.01 0.05 5

1998-01-02 -0.04 0.12 2

...

2010-12-31 0.05 0.25 3

现在我想用

a) 平均回报率

b) PNL总和

签署人:

1)年份,即1998年、1999年、2010年

2)所有年份的季度,即Q1(YYYY-01-01至YYYY-03-31),Q2,…,Q4

此外,每1)和2)的交易额之和应表示每个水平条旁边的一个数字。在

因此,在我看来,需要两个独立的步骤:

1)以正确的格式获取数据

2)将数据输入绘图,然后叠加多个绘图。在

样本数据:

^{pr2}$

因此,这可能是每年和每个季度的两个水平条形图:

1)返回一个:条形图,条形图中间的数字,条形图末尾的无交易总和

2)pnl一个:条形图,条形图中间的数字,条形末端的未交易总额

再加上横穿横条的虚线,显示平均回报率和pnl。在

我可以在excel中完成(它实际上是用各自的视图添加列,然后用pivot图表),但是我更喜欢一种“自动化”的方式,可以通过python复制(或理解它是如何完成的)。在

编辑:正如下面的评论中所讨论的,这就是我所取得的成就;然而,我不确定这是否是关于1)最快的方法。我目前正在研究2)。在df_ret_year = df[['date', 'returns']].groupby(df['date'].dt.year).mean()

df_ret_quarter = df[['date', 'returns']].groupby(df['date'].dt.quarter).mean()

df_pnl_year = df[['date', 'pnl']].groupby(df['date'].dt.year).sum()

df_pnl_quarter = df[['date', 'pnl']].groupby(df['date'].dt.quarter).sum()

df_trades_year = df[['date', 'pnl']].groupby(df['date'].dt.year).sum()

df_trades_quarter = df[['date', 'pnl']].groupby(df['date'].dt.quarter).sum()

你可能感兴趣的:(python柱形图显示年份)