试图更好地使用Python和pandas ......
我有一些股票市场数据,我已根据"日期"添加了day_of_week列(周一,周二,周三,周四,周五)。 columnn,显然还有每天的Open,High,Low和Close列,我还添加了pct-chance列,现在我要做的就是打印出来,然后绘制pct-change for all星期一,或者我喜欢哪一天,然后我想在我的数据中绘制每周工作日直方图样式的平均pct变化,所以它看起来像星期一,星期二的直方图沿着底部的X轴,它们的平均pct变化数据在Y.
所以不知怎的,我需要弄清楚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
希望有人可以帮助/指出我正确的方向,谢谢!!
答案 0 :(得分:1)
我认为您需要groupby
汇总mean
,然后DataFrame.plot.bar
:
df.groupby('day_of_week')['Pct_change'].mean().plot.bar()
如需订购,请使用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()