python - 蟒蛇 | 熊猫 | CSV | 字典问题
问题描述
我有一个包含 40 列的数据,但我缩小了范围:
Information = df[["Origin Airport", "Operating Airline Name", "Operating Airline Capacity"]]
现在看起来像这样
Origin Airport ... Operating Airline Capacity
0 IAD ... 16151
1 IAD ... 12183
2 IAD ... 10974
3 IAD ... 8959
4 IAD ... 8587
... ... ... ...
23605 IAD ... 50
23606 IAD ... 50
23607 IAD ... 50
23608 IAD ... 50
23609 IAD ... 50
我想制作一本字典,以运营航空公司为键,容量为值。
a=Information.set_index('Operating Airline Name')['Operating Airline Capacity'].to_dict()
它有效,但是当我检查结果时它与实际结果不匹配。
打印“a”看起来像这样
{'Emirates': 16151, 'Ethiopian Airlines Enterprise': 1179, 'Qatar Airways (Q.C.S.C.)': 354, 'Turkish Airlines Inc.': 9300, 'Korean Air Lines Co. Ltd.': 8587, 'United Airlines, Inc.': 126, 'Air France': 296, 'Etihad Airways': 7006,
继续..
例如,数据中有多个具有不同值的“Emirates”行,但在“a”字典中没有
因此,我想要一本字典,显示每家航空公司的运力总和。
有什么建议么?谢谢!
解决方案
字典不能有重复的键。您当前的方法可能是采用每家航空公司的第一个实例并将该容量分配给它。它也不知道如何聚合您的数据。
在制作字典之前,您需要先创建汇总数据的视图。您可以使用该.groupby
方法。
尝试:
Information.groupby('Operating Airline Name').agg({'Operating Airline
Capacity':'sum'}]).to_dict()
推荐阅读
- scala - 如何获取(派生的)Spark DataFrame 的查询逻辑的 SQL 表示?
- php - 我可以为 laravel 中具有相同列的多个表创建迁移吗?
- firebase - Flutter Cloud Firestore 读取数据有参考
- javascript - 如何使用 Vuejs 中的每个字符验证密码字段?
- sql - IBD 文件需要导入 PHPMyAdmin
- prometheus - 使用 prometheus 查询从 node_cpu_info 获取 cpu 型号名称
- sql - 如何将数字转换为字符串,提取每个数字,再次将其转换为整数,然后在 SQL 中将它们加在一起(例如 1+2+3+4+5+6)?
- r - 根据属性过滤数据(data.frame)并将其分配给向量
- xamarin.forms - Xamarin Forms:在 TimePicker 中关闭时钟弹出后,UI 上显示的时间不同?
- apache-flink - 当我将 jar 提交给 Flink 时的 NPE