我试图绘制一列相对于另一列的直方图分布。例如,如果数据框列是[' count',' age'],那么我想绘制每个年龄组的总计数。假设在
年龄:0-10岁 - >总人数为20
年龄:10-20岁 - >总数为10
年龄:20-30岁 - > ......等等。
我尝试groupby('age')
而不是绘制直方图,但它没有效果。
感谢。
以下是我的部分数据
df.head()
age count
0 65 2417.86
1 65 4173.50
2 65 3549.16
3 65 509.07
4 65 0.00
此外,df.plot( x='age', y='count', kind='hist')
显示
答案 0 :(得分:2)
好的,如果我理解正确,你需要加权直方图
import pylab as plt
import pandas as pd
np = pd.np
df = pd.DataFrame( {'age':np.random.normal( 50,10,300).astype(int),
'counts':1000*np.random.random(300)} ) # test data
#df.head()
# age counts
#0 38 797.174450
#1 36 402.171434
#2 49 894.218420
#3 66 841.786623
#4 51 597.040259
df.hist('age',weights=df['counts'] )
plt.ylabel('counts')
plt.show()