我需要帮助,我有一个csv文件,包含以下列:
Date Tipology inputDates dayOfWeek
0 2018-01-01 200 2018-01-01 Monday
1 2018-01-02 93 2018-01-02 Tuesday
2 2018-01-03 382 2018-01-03 Wednesday
3 2018-01-04 147 2018-01-04 Thursday
4 2018-01-05 107 2018-01-05 Friday
... ... ... ... ...
360 2018-12-27 155 2018-12-27 Thursday
361 2018-12-28 148 2018-12-28 Friday
362 2018-12-29 129 2018-12-29 Saturday
363 2018-12-30 129 2018-12-30 Sunday
364 2018-12-31 147 2018-12-31 Monday
我想在一周中的每一天总结一下我正在做的:
groupweek = df1.groupby(['dayOfWeek','Tipology']).count()
groupweek
我收到
Date inputDates
dayOfWeek Tipology
Friday 107 1 1
113 1 1
117 1 1
118 1 1
119 1 1
.........................
Monday 104 1 1
111 1 1
113 1 1
118 1 1
..........................
etc. etc
理论上,我认为把星期五到星期一等的所有类型加起来,我得到了多少类型(一周中每天发生的数字和(,但这并没有发生,所以我不确定通过下面的操作我是否得到了我想要的:?
in:
groupweek = df1.groupby(['dayOfWeek'],as_index=False)['Tipology'].sum()
groupweek
out:
dayOfWeek Tipology
0 Friday 8356
1 Monday 9245
2 Saturday 8685
3 Sunday 8489
4 Thursday 8629
5 Tuesday 8959
6 Wednesday 9273
数字提示值是否根据2018年的工作日进行分组和汇总?
使用count(((应该有所有52个星期五、52个星期一等(添加它们不会得到sum((的结果。
您的第一个实现:
groupweek = df1.groupby(['dayOfWeek','Tipology']).count()
等效sql:
select count(Date), count(inputDates) from df1 group by dayOfWeek, Tipology
您在groupBy中使用了两列:"dayOfWeek"one_answers"Tipology"这为("dayOfWeek","Tipology"(组合创建了唯一的行。
相反,你只想在一周中的某一天拥有独特性。因此,从逐列中删除列"Tipology"就可以了。这将给你所有的52秒和53秒。
groupweek = df1.groupby(['dayOfWeek'])['Tipology'].count()
等效sql:
select count(Tipology) from df1 group by dayOfWeek
您的第二个实现是正确的。Tipology按daysOfWeek分组,然后按sum函数聚合。
groupweek = df1.groupby(['dayOfWeek'],as_index=False)['Tipology'].sum()
等效sql:
select sum(Tipology) from df1 group by dayOfWeek