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

问题描述 投票:0回答:1

我想为 Pandas DataFrame 的两列绘制直方图。

Bin 在

ratio
列上定义,例如[0-0.1, 0.1-0.2,...,0.9-1.0],我想为每个 bin 绘制另一列名为
feet
的平均值。

有没有办法只绘制直方图而不生成新列?

python pandas matplotlib histogram
1个回答
4
投票

您不需要创建新列,只需将函数传递给 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版本开始,你可以直接指定y标签,如

...plot.bar(ylabel='Mean feet')

© www.soinside.com 2019 - 2024. All rights reserved.