python - pandas 数据框在 matplotlibm 中绘制为表格,但缺少第一列
问题描述
我想在 matplotlib 中将 pandas 数据框绘制为表格。
数据框(df):
name wait_value
cscas 2
cscas 6
dgref 3
dgref 7
我用了 :
new_df = df.groupby(['name'])['wait_value'].mean().to_frame()
fig, axarr = plt.subplots(1, 2)
axarr[0].axis('off')
axarr[0].axis('tight')
axarr[0].table(cellText= new_df.values, colLabels=('ave_wait_value'), loc='center')
fig.tight_layout()
plt.show()
但是,该表只有一列“ave_wait_value”。我需要两列:
ave_wait_value
4
5
如何将“名称”列添加到表中?
我也试过:
new_df.rename(columns = {0:'name', 1:'ave_wait_value'}, inplace =True)
但是,它没有用。
另外,我需要为每个“名称”计算 std.dev 并将其作为列放在同一个表中,如何设计查询?谢谢!
解决方案
名称信息在那里;它只是存储在索引中。要将索引转换为列,请使用reset_index
:
In [45]: df.groupby(['name'])['wait_value'].mean().to_frame()
Out[45]:
wait_value
name
cscas 4
dgref 5
In [46]: df.groupby('name')['wait_value'].mean().reset_index()
Out[46]:
name wait_value
0 cscas 4
1 dgref 5
要获得均值和标准差,请使用agg
:
In [49]: df.groupby('name')['wait_value'].agg(['mean', 'std']).reset_index()
Out[49]:
name mean std
0 cscas 4 2.828427
1 dgref 5 2.828427
推荐阅读
- jquery - 页面加载时Materializecss模式未打开
- c++ - Breakpad 的 dump_syms 无法正常工作
- excel - 如果在第一列中未找到 VLOOKUP 多列
- typescript - 描述在 Typescript、Mocha 和 VSCode 上未定义异常
- ag-grid - AG 网格除显示行总计外,还显示百分比行总计
- google-cloud-platform - 创建 Bigtable 副本集群会产生度量错误
- c# - 在 IIS 上运行的 ASP.net 上的超长 TTFB
- php - 如何在 Twig 的标题下显示名称列表
- pandas - 处理`read_csv`的本地时间变化缓慢的熊猫
- ruby-on-rails - NoMethodError: nil:NilClass 的未定义方法 `<'