Pandas按日期索引分组并统计整数列表中的值

0 投票
1 回答
713 浏览
提问于 2025-04-18 18:14

我有一组数据,这些数据是一个日期索引,日期范围从'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]

想要的透视表/分组/交叉表输出:

      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 个回答

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

撰写回答