以下是我的数据集的示例(时间范围= 2019年1月至2019年4月):
id date
1 2019-01-04
1 2019-01-17
1 2019-03-12
2 2019-01-01
2 2019-02-02
2 2019-02-13
2 2019-02-23
我希望它看起来像这样:
id month count
1 1 2
1 2 0
1 3 1
1 4 0
2 1 1
2 2 3
2 3 0
2 4 0
任何帮助将不胜感激。
答案 0 :(得分:2)
在您的情况下,将reindex
与pd.crosstab(df.id,df.date.dt.month).reindex(columns=range(1,5),fill_value=0).stack().reset_index()
Out[482]:
id date 0
0 1 1 2
1 1 2 0
2 1 3 1
3 1 4 0
4 2 1 1
5 2 2 3
6 2 3 0
7 2 4 0
一起使用
@Query("UPDATE exercise_table SET reps = :reps WHERE id =:id")
void updateRepsList(List<String> reps, String id );
@Query("UPDATE exercise_table SET weights = :weights WHERE id =:id")
void updateWeightList(List<String> weights, String id);
@Update
void updateExercise(Exercise exercise);