matplotlib 如何在Pandas中绘制一列的平均值直方图,同时由另一列定义bin

vsdwdz23  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(107)

我想为我的Pandas DataFrame的两列绘制一个直方图。
bin定义在ratio列上,例如[0-0.1,0.1- 0.2,..,0.9 -1.0],我想为每个bin绘制另一列feet的平均值。
有没有一种方法可以在不生成新列的情况下绘制直方图?

sg3maiej

sg3maiej1#

你不需要创建一个新的列,只需要传递一个函数给groupby:
范例:

import pandas as pd
import numpy as np
df = pd.DataFrame({'ratio':np.random.rand(100), 'feet': np.random.rand(100)*10})
df.groupby(pd.cut(df.ratio, np.linspace(0,1,11))).feet.mean().plot.bar()

字符串


PS:从pandas 1.1.0版本开始,你可以像...plot.bar(ylabel='Mean feet')一样直接指定y标签。

相关问题