You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas循环使用groupby生成多独立DataFrame或合并全量DataFrame的方法

解决方案

方案1:生成合并的全量Top5航线DataFrame(推荐,实现最简单、性能最优)

先一次性完成全量统计,再按出发机场分组取前5,输出的合并结果和你打印的内容完全一致:

import pandas as pd

ap = ['DMK','BKK','HKT','USM']
# 第一步:一次性统计所有目标出发机场的航线数量,避免循环内重复计算
full_stats = c[c['schedule_from'].isin(ap)]\
    .groupby(['schedule_from','schedule_to'])\
    .size()\
    .reset_index(name='flight_count') # 把原来的列名0改为语义更明确的航班数量
# 按出发机场正序、航班数量倒序排序
full_stats = full_stats.sort_values(['schedule_from','flight_count'], ascending=[True, False])
# 每个出发机场取前5条,得到合并后的全量DataFrame
merged_top5 = full_stats.groupby('schedule_from').head(5).reset_index(drop=True)

你可以直接输出merged_top5查看完整结果。

方案2:生成每个出发机场的独立DataFrame

在方案1的基础上,把每个机场的结果存入字典即可,调用时直接用机场代码取对应DataFrame:

# 接方案1的代码,生成独立DataFrame字典
ap_df_dict = {}
for code in ap:
    ap_df_dict[code] = merged_top5[merged_top5['schedule_from'] == code].reset_index(drop=True)

# 调用示例:取DMK的结果直接用 ap_df_dict['DMK'],需要单独存为变量可以直接赋值
df_DMK = ap_df_dict['DMK']
df_BKK = ap_df_dict['BKK']
df_HKT = ap_df_dict['HKT']
df_USM = ap_df_dict['USM']

内容的提问来源于stack exchange,提问作者user16286965

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:57:01