Pandas Groupby整数列表中的日期索引和计数值

时间:2014-08-22 20:31:57

标签: python pandas

我有以下数据,这是一个日期索引,其日期范围介于'2014-08-22'和'2014-08-28'之间,另一列是整数列表。我试图找出一个很好的Pandas方法,只按日期分组数字。期望的结果也在下面。

日期:

                                                                                values
date                                                                                        
2014-08-22                 [179, 187, 188, 190, 194, 198, 2, 226, 26, 311, 322, 325, 341, 6]
2014-08-22                 [179, 187, 188, 190, 194, 198, 2, 226, 26, 311, 322, 325, 341, 6]
2014-08-22  [167, 172, 178, 189, 198, 2, 20, 211, 212, 22, 274, 276, 287, 318, 321, 326, 48]
2014-08-23  [167, 172, 178, 189, 198, 2, 20, 211, 212, 22, 274, 276, 287, 318, 321, 326, 48]
2014-08-23  [167, 172, 178, 189, 198, 2, 20, 211, 212, 22, 274, 276, 287, 318, 321, 326, 48]

所需的pivot / groupby / crosstab输出:

      2014-08-22  2014-08-23
179       2           0
167       1           2
etc... 

我知道如何创建一个带有出现次数的字典,但不知道如何按索引对其进行分组

from collections import Counter
values_list = list(chain.from_iterable(df['values']))
Counter(values_list)

1 个答案:

答案 0 :(得分:2)

这是一种方法。

# expand lists of data into into columns
t = df['values'].apply(lambda x: pd.Series(1, index=x))
t = t.fillna(0) #Filled by 0

# sum observations across days and transpose 
t.groupby(level=0).sum().T