0

我需要帮助,我有一个包含以下列的 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

我想按 dayOfWeek 总结tipology,我正在做:

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() 的结果。

4

1 回答 1

2

您的第一个实施:

groupweek = df1.groupby(['dayOfWeek','Tipology']).count()

等效的sql:

select count(Date), count(inputDates) from df1 group by dayOfWeek, Tipology

您在这里使用了 groupBy 中的 2 列:'dayOfWeek' 和 'Tipology' 这为 ('dayOfWeek','Tipology') 组合创建了唯一的行。

相反,您只需要 dayOfWeek 的唯一性。因此,从按列分组中删除列“Tipology”就可以了。这会给你所有的 52s 和 53s。

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
于 2020-11-18T21:25:26.110 回答