首页 文章

在某些日子只绘制pandas数据帧

提问于
浏览
2

试图更好地使用Python和pandas ......

我有一些股票市场数据,我已根据“日期”栏添加了day_of_week列(周一,周二,周三,周四,周五),显然还有每天的Open,High,Low和Close列,以及还添加了pct-chance专栏,现在我要做的就是打印出来,然后绘制所有星期一的pct-change,或者我喜欢的任何一天,然后我想在直方图中绘制平均pct-change在我的数据中每个工作日的样式,所以它看起来像一个直方图,周一,周二等沿着底部的X轴,它们在Y上的平均pct-变化数据 .

所以我需要弄清楚day_of_week列==“星期一”是否返回pct-change?但我假设有一个更好的方式与熊猫不知何故,与.loc或其他东西,但我无法弄清楚:(

数据仅由一个整数索引,然后是Date,O,H,L,C,Volume,Range,Pct_change,day_of_week列等,下面是我从data.head()的输出

Date     Open     High      Low   Settle   Volume  \
0 2017-07-20  12493.0  12567.0  12381.0  12422.0  94966.0
1 2017-07-19  12446.5  12481.5  12408.0  12432.5  68435.0
2 2017-07-18  12554.0  12569.0  12373.5  12425.5  96933.0
3 2017-07-17  12646.5  12668.0  12531.0  12587.0  65648.0
4 2017-07-14  12642.5  12658.5  12567.0  12611.0  59074.0

   Prev. Day Open Interest day_of_week  Range   < MR   > MR  Pct_change
0                 151217.0    Thursday  186.0    NaN  186.0   -0.568318
1                 148249.0   Wednesday   73.5   73.5    NaN   -0.112481
2                 154485.0     Tuesday  195.5    NaN  195.5   -1.023578
3                 145445.0      Monday  137.0  137.0    NaN   -0.470486
4                 144704.0      Friday   91.5   91.5    NaN   -0.249160

希望有人可以帮助/指出我正确的方向,谢谢!!

1 回答

  • 1

    我认为你需要groupby与聚合mean然后DataFrame.plot.bar

    df.groupby('day_of_week')['Pct_change'].mean().plot.bar()
    

    graph

    如需订购,请使用ordered categorical

    cats = ['Monday','Tuesday','Wednesday','Thursday','Friday']
    df['day_of_week'] = df['day_of_week'].astype('category', categories=cats, ordered=True)
    df.groupby('day_of_week')['Pct_change'].mean().plot.bar()
    

    graph1

相关问题