我有一个航班列表作为一个数据框,如下所示:
airline status number ...
Aer Lingus some error A 14 ...
Aeroflot success 47 ...
Air Canada success 2 ...
Air Dolomiti success 2 ...
Air Europa some error B 4 ...
Air France success 40 ...
Alitalia some error A 10 ...
....
每次飞行成功或出现错误时,我都会调用一些api。你知道吗
我想要的是每个航空公司的成功率。所以我知道我可以用groupby计算“airline”和“status”列中的值的出现次数,但是我无法计算值的比率。你知道吗
def calculate_quote_success_ratios(flights):
success_ratio_per_airline = flights.groupby(['airline', 'status']).count()
# TODO: Include ratio with failures!
return success_ratio_per_airline
预期的输出应该是这样的:
airline success_ratio
Aer Lingus 0.72
Aeroflot 0.845
Air Canada 0.935
Air Dolomiti 0.5
Air Europa ...
....
编辑:很明显,df['numbers']
列不相关。所以我只想计算一下每一家航空公司的“成功”与各种错误的百分比。你知道吗
可以将^{} 与
normalize='index'
一起使用:我不得不修改您的示例以使其工作,但您只需执行
df.groupby(['airline', 'status']).sum() / df.groupby(['airline']).sum()
原始数据框:
按组计算航班数
按组计算成功次数
pandas div返回前两个数据帧的按组比率。你知道吗
相关问题 更多 >
编程相关推荐