首页 > 解决方案 > 多列中 groupby 和 sum 的 Python 问题

问题描述

我有一个包含以下列的数据框(这里只是称为 df): OriginName - 人们旅行的来源的名称

DestinationName - 人们前往的就业中心目的地的名称

时间(分钟) - 人们到达每个目的地所需的时间

Num_Destinations_within_0_15min - 如果该特定行的时间(分钟)在 0 到 15 分钟之间,则为 1,否则为 0

Num_Destinations_within_0_30min - 如果该特定行的时间(分钟)在 0 到 30 分钟之间,则为 1,否则为 0

Num_Destinations_within_0_45min - 如果该特定行的时间(分钟)在 0 到 45 分钟之间,则为 1,否则为 0

Num_Destinations_within_0_60min - 如果该特定行的时间(分钟)在 0 到 60 分钟之间,则为 1,否则为 0

Num_Destinations_within_60+min - 如果该特定行的时间(分钟)超过 60 分钟,则为 1,否则为 0

Jobs_at_Destination - 每个特定目的地的作业数

因此,实际上,对于每个 OriginName,数据框都有大量行,每行代表它们可以到达的 DestinationName 之一。

我有两个任务需要完成。第一个是获取一个数据框,为每个 OriginName 提供在 0-15 分钟、0-30 分钟、0-45 分钟、0-60 分钟和 60+分钟内可用的目的地数量。使用以下代码,我可以毫无问题地做到这一点:

df = df.groupby(['OriginName'])\
            .sum()\
            .reset_index()

但是,对于第二个任务,我需要找出每个 OriginName 在 0-15 分钟、0-30 分钟、0-45 分钟、0-60 分钟和 60+分钟内有多少工作可用。我试图更改我分组或求和的列,但无济于事。任何帮助将不胜感激。

标签: pythonsum

解决方案


推荐阅读