标签: python pandas matplotlib histogram
我想为我的Pandas DataFrame的两列绘制一个直方图。虽然bin由列ratio的值定义,例如[0-0.1、0.1-0.2,...,0.9-1.0],而不是像常规直方图那样的计数,我需要为每个bin绘制另一列feet的平均值。我可能可以创建另一个对ratio列进行分箱的列,并通过对新列进行分组来计算feet的平均值。但是有一种方法可以只绘制它而不生成新列
ratio
feet
答案 0 :(得分:2)
您无需创建新列,只需将函数传递给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:从熊猫1.1.0版开始,您可以直接指定y标签,例如...plot.bar(ylabel='Mean feet')。
...plot.bar(ylabel='Mean feet')