python - 按 ID 分组和完整时间序列 Pandas

标签 python pandas dataframe time-series

我有一个 pandas Dataframe,其中包含一个 ID 的观察值,并且我遇到了与已解决的问题类似的问题 here

Timestamp              ID
2014-10-16 15:05:17    123
2014-10-16 14:56:37    148
2014-10-16 14:25:16    123
2014-10-16 14:15:32    123
2014-10-16 13:41:01    123
2014-10-16 12:50:30    148
2014-10-16 12:28:54    123
2014-10-16 12:26:56    123
2014-10-16 12:25:12    123
...
2014-10-08 15:52:49    150
2014-10-08 15:04:50    150
2014-10-08 15:03:48    148
2014-10-08 15:02:27    200
2014-10-08 15:01:56    236
2014-10-08 13:27:28    147
2014-10-08 13:01:08    148
2014-10-08 12:52:06    999
2014-10-08 12:43:27    999
Name: summary, Length: 600

在提到的帖子中,他们展示了如何按 ID 分组以及如何进行计数。使用 df['Week/Year'] = df['Timestamp'].apply(lambda x: "%d/%d" % (x.week, x.year))我现在有这个:

   Timestamp               ID     Week/Year
0  2014-10-16 15:05:17     123    42/2014
1  2014-10-16 14:56:37     150    42/2014
2  2014-10-16 14:25:16     123    42/2014

我的问题是,现在我想制作一个时间序列,所以实际上,我需要:

Category    Week_42_2014    Week_43_2014    Week_44_2014    
123         7              0              6
150         0              0              2              ...

这就是,我需要将几周作为一列,将类别作为行,并且还要填补没有观察的几周的空白。就我而言,我也需要几天,但我想这确实很相似。

谢谢

最佳答案

您可以使用pd.pivot_table :

res = df.pivot_table(index='ID', columns='Week/Year', aggfunc='count', fill_value=0)

print(res)

          Timestamp        
Week/Year   41/2014 42/2014
ID                         
123               0       7
147               1       0
148               2       2
150               2       0
200               1       0
236               1       0
999               2       0

关于python - 按 ID 分组和完整时间序列 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52691128/

相关文章:

python - 将新列添加到 DataFrame 中,其值取决于索引引用

r - 在多个列上嵌套 if else 语句

python - numpy.sum 在 numpy.array 与 pandas.DataFrame 上的行为不同

python - 在 Python 中扩展列表列表?

python - 无法确定 SyntaxError : invalid character in identifier 的原因

python - Matplotlib 无法通过 PyCharm 工作

python - 如何在保持 Dataframe 结构的同时计算 %

python - 如何同时将函数与 if 语句应用于多个数据帧列

python - 从嵌套字典创建多列 Pandas DataFrame

python - 如何通过挤压将WAV音频文件的长度更改为适合固定长度