groupby和get_group没有给出相同的结果

时间:2017-08-09 13:02:29

标签: python pandas pandas-groupby

我正在尝试使用groupby获取列中的唯一值计数。但是,如果我只查看groupby结果(为每个组打印)并且使用get_group(),我会得到不同的结果。但是我得到的结果与第一种方法不一样。这有什么问题?

print "Groupby:",bigDF[bigDF.Class == "apple"].groupby('sizeBin').customerId.nunique()
print "Selection:",bigDF[(bigDF.Class == "apple")&(bigDF.sizeBin == 0)].customerId.nunique()
print "Get group:",bigDF[bigDF.Class == "apple"].groupby('sizeBin').get_group(0).customerId.nunique()
Groupby: sizeBin
0       6
1      14
5      26
10     34
20     32
50      3
100     3
200     7
500     0
Name: customerId, dtype: int64
Selection: 34
Get group: 34

我还应该注意数据类型,pd.info()给出了以下内容,因此sizeBin是一个类别:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 224903 entries, 0 to 20616
Data columns (total 3 columns):
customerId  224903 non-null int64
Class       224903 non-null object
sizeBin     224903 non-null category
dtypes: category(1), int64(1), object(1)
memory usage: 5.4+ MB

0 个答案:

没有答案