Groupby在多个项目上的分类

时间:2018-04-09 15:14:20

标签: python pandas dataframe pandas-groupby

我的数据框看起来像这样(但有大约100,000行数据):

ID,Total,TotalDate,DaysBtwRead,Type,YearlyAvg 
1,1250,6/2/2017,17,AT267,229 
2,1670,2/3/2012,320,PQ43,50

我尝试使用

分组年度平均总数

df.groupby(pd.cut(df['YearlyAvg'], np.arange(0,1250,50))).count()

这样我就可以设置一个独特的蒙特卡洛分布,但我需要按照每个单独的类型进行分组。这当前仅计算每个范围而不管其他任何值。

我没有计算整体总数,而是尝试设置我的代码,以便输出看起来更像下面的内容(包含每个范围计数的YearlyAvg)

Index,YearlyAvg
AT267(0, 50], 200  
PQ43(0, 50], 123    
AT267(50, 100], 49   
PQ43(50, 100], 67

除了为每个Type值创建单独的数据框之外,还有更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以将unstackstack

一起使用
df['bins']=pd.cut(df['YearlyAvg'], np.arange(0,1250,50))
df.groupby(['Type','bins']).size().unstack(fill_value=0).stack()# also here will create the multiple index for achieve what you need 
Out[1783]: 
Type   bins      
AT267  (0, 50]       0
       (200, 250]    1
PQ43   (0, 50]       1
       (200, 250]    0
dtype: int64