任务如下.需要找出最常延误的前5条路由,并统计由于天气状况延误的次数.

以下是航班列表:

FlightNum CancellationCode
1 "B"
1 NA
1 NA
2 NA
2 "A"
2 "A"
3 NA
3 NA
3 NA
4 "B"
4 "B"
4 "B"
5 NA
5 "A"
5 "B"
6 "A"
6 "A"
6 "A"
6 "B"
7 "A"
7 "B"
7 "B"

取消代码是延迟的原因."A"--航母,"B"--天气,NA--及时离开.我写了代码,找出最常延误的前5条路由.

data[(data.CancellationCode.notnull())]['FlightNum'].value_counts()[:5]

Result:
6: 4
7: 3
4: 3
5: 2
2: 2

现在需要显示由于这些FlightNum的天气("B")而延误的航班数量.结果必须如下:

6: 1
7: 2
4: 3
5: 1
2: 0

如何改进我的代码?

推荐答案

这里有一种方法.首先,由于天气原因得到value_counts分,然后用当前解决方案的索引得到reindex分,你只需获得前5条路由.

res = (
    data.loc[data['CancellationCode'].eq('"B"'), 'FlightNum'].value_counts()
    .reindex(data.loc[data['CancellationCode'].notnull(), 'FlightNum']
                 .value_counts()[:5].index,
             fill_value=0)
)
print(res)
# 6    1
# 4    3
# 7    2
# 2    0
# 5    1
# Name: FlightNum, dtype: int64

Python相关问答推荐

如何计算两极打印机中 * 所有列 * 的出现次数?

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

根据不同列的值在收件箱中移动数据

连接两个具有不同标题的收件箱

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

Pandas DataFrame中行之间的差异

当递归函数的返回值未绑定到变量时,非局部变量不更新:

为什么\b在这个正则表达式中不解释为反斜杠

Maya Python脚本将纹理应用于所有对象,而不是选定对象

为什么'if x is None:pass'比'x is None'单独使用更快?

使用tqdm的进度条

如何在信号的FFT中获得正确的频率幅值

Pandas:计数器的滚动和,复位

在一个数据帧中,我如何才能发现每个行号是否出现在一列列表中?

使用pythonminidom过滤XML文件

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?

当lambda函数作为参数传递时,pyo3执行

在不降低分辨率的情况下绘制一组数据点的最外轮廓

保存由PYTHON在EXCEL中所做更改的问题