熊猫群体间隔的系列

时间:2017-09-14 03:04:55

标签: python pandas group-by series categorical-data

以下是获得观点的示例:

missing_values=-999.0    
level1=pd._libs.interval.Interval(-np.inf, 1, closed='right')
level2=pd._libs.interval.Interval(1,np.inf, closed='right')
data=pd.DataFrame({'a':[level1,missing_values,level2]})

>>> data
           a
0  (-inf, 1]
1       -999
2   (1, inf]

当我尝试data.groupby(['a']).count()时,TypeError: unorderable types: Interval() > float()

会出错

但如果我在第一行设置-999,或设置3个间隔级别,它就可以运行!

>>> data
           a
0       -999
1  (-inf, 1]
2   (1, inf]

>>> data.groupby(['a']).count()
a
-999.0       1
(-inf, 1]    1
(1, inf]     1


>>> data
  a
0  (-inf, 1]
1       -999
2     (1, 2]
3   (2, inf]

>>> data.groupby(['a']).count()
a
(-inf, 1]    1
-999.0       1
(1, 2]       1
(2, inf]     1
Name: a, dtype: int64

这意味着groupby可以对间隔和浮动进行排序吗?那么TypeError意味着什么?

1 个答案:

答案 0 :(得分:0)

我不确定groupby是否适用于Intervals,但它肯定适用于类别。您可以使用pd.Categorical然后使用groupby。

data.groupby(pd.Categorical(data.a)).count()

           a
(-inf, 1]  1
-999.0     1
(1, inf]   1