我有以下数据,这是一个日期索引,其日期范围介于'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)
答案 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