python - pandas 数据框在 matplotlibm 中绘制为表格,但缺少第一列

标签 python python-3.x pandas dataframe matplotlib

我想在 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

关于python - pandas 数据框在 matplotlibm 中绘制为表格,但缺少第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445856/

相关文章:

python - Pandas :有条件的转变

python - Pandas 数据框 : group by year and month

python - while (1) vs. while(True) -- 为什么有区别(在 python 2 字节码中)?

python - 多个范围列表的交集和补集

python - python 中 dict.keys() 的奇怪行为

python - turtle 代码被执行,但不在canvas中绘制

python - 如何从类方法中获取类名?

python - 在 pandas python 中匹配一个表并将值映射到另一个表

java - Java的翻译过程是什么?

python - 基于偏移月份序列(任意日期范围)进行合并、重新索引或以其他方式分箱