我有一个熊猫数据框,比如:
In [61]: df = DataFrame(np.random.rand(3,4), index=['art','mcf','mesa'],
columns=['pol1','pol2','pol3','pol4'])
In [62]: df
Out[62]:
pol1 pol2 pol3 pol4
art 0.661592 0.479202 0.700451 0.345085
mcf 0.235517 0.665981 0.778774 0.610344
mesa 0.838396 0.035648 0.424047 0.866920
我想生成一行基准上的策略平均值,然后绘制出来。
目前,我的做法是:
df = df.T
df['average'] = df.apply(average, axis=1)
df = df.T
df.plot(kind='bar')
有没有一个优雅的方法来避免双重换位?
我试过:
df.append(DataFrame(df.apply(average)).T)
df.plot(kind='bar')
这将追加正确的值,但不会正确更新索引,并且图形会出现混乱。
一个澄清。带有双转置的代码的结果是: 这就是我想要的。显示政策的基准和平均值,而不仅仅是平均值。我只是好奇我能不能做得更好。
请注意,传说通常是混乱的。为了解决这个问题:
ax = df.plot(kind='bar')
ax.legend(patches, list(df.columns), loc='best')
您可以简单地使用
DataFrame
的实例方法mean
,然后绘制结果。不需要换位。更新
如果要绘制所有列的条形图和平均值,可以
append
平均值:如果布局不适合子批次^{} 将调整matplotlib参数。
相关问题 更多 >
编程相关推荐