Python 如何获取列值的频率计数,按另一列中的aa分类值排序
我有一个熊猫数据框,包括两列,船只名称和延迟指示器。船只名称是船只的字符串名称,延迟指示器为0或1(布尔值) 我的数据帧:Python 如何获取列值的频率计数,按另一列中的aa分类值排序,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框,包括两列,船只名称和延迟指示器。船只名称是船只的字符串名称,延迟指示器为0或1(布尔值) 我的数据帧: df = pd.DataFrame({ "Vessel.Name": ["Spirit of British Columbia", "Queen of New Westminster", "Spirit of Vancouver Island", "Coastal Celebration", "Spirit of British Columbia"], "D
df = pd.DataFrame({
"Vessel.Name": ["Spirit of British Columbia", "Queen of New Westminster", "Spirit of Vancouver Island", "Coastal Celebration", "Spirit of British Columbia"],
"Delay.Indicator":[0, 0, 0, 1, 0]
})
外观:
Vessel.Name Delay.Indicator
Spirit of British Columbia 0
Queen of New Westminster 0
Spirit of Vancouver Island 0
Coastal Celebration 1
Spirit of British Columbia 0
我的目标是获得一个数据帧,其中包括每个不同的船名,以及两个新列,指示每个不同船名的计数,以及延迟指示器中“1”的总数。不确定是否有用于此的方法,或者是否应该遍历python列表?应用聚合函数的简单groupby应该可以实现以下功能:
df.groupby("Vessel.Name")["Delay.Indicator"].agg(['count', sum])
输出:
count sum
Vessel.Name
Coastal Celebration 1 1
Queen of New Westminster 1 0
Spirit of British Columbia 2 0
Spirit of Vancouver Island 1 0
如果您可以使用创建一个示例数据框,这将使其他人更容易在将来帮助您解决问题