pd.cut操作产生间隔:In [11]: pd.cut(df1["Range1"], [0,1,2,3,4,5,6,7,8,9,10,11,df1['Range1'].max()])
Out[11]:
12 (0, 1]
11 (1, 2]
0 (2, 3]
10 (3, 4]
3 (4, 5]
2 (6, 7]
9 (7, 8]
1 (8, 9]
8 (10, 11]
7 (11, 78]
5 (11, 78]
4 (11, 78]
6 (11, 78]
Name: Range1, dtype: category
Categories (12, interval[int64]): [(0, 1] < (1, 2] < (2, 3] < (3, 4] ... (8, 9] < (9, 10] < (10, 11] <
(11, 78]]
当在groupby操作中使用时,它们将根据上面的剪切操作的索引进行匹配,然后根据指定的操作进行分组和求和。在
因此,这些间隔最后作为df2中的索引:
^{pr2}$
当您使用df2['Range2'].index.values时,它将是这些间隔中的array,作为bar的第一个参数传递,它不能按照matplotlib期望的方式转换为浮点。在
如果您只想绘制一个df2.Range2的条形图,并且您很乐意将间隔作为轴标签,则这将起作用:plt.bar(range(len(df2)), df2.Range2.values, tick_label=df2.Range2.index.values)
为我产生了这样的形象: