首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫-组合选定的列和行,总结单元格的内容。

熊猫-组合选定的列和行,总结单元格的内容。
EN

Stack Overflow用户
提问于 2018-02-28 16:33:17
回答 1查看 60关注 0票数 0

如何将某些列和行合并在一起,从而将合并的单元格的值相加?

目前,我有熊猫的数据,航班数之间的机场。不过,我需要几个城市之间的航班。

我有一个字典,以城市名称作为键,机场标识代码列表作为值。有什么方法可以将与同一城市相关的机场的行和列组合起来吗?

字典:

代码语言:javascript
复制
{'Akron': ['AKC', 'CAK', 'AKO'],
 'Albany': ['ALB', 'ABY', 'ALH'],
 'Albuquerque': ['ABQ'],
 'Allentown': ['ABE'],
 'Atlanta': ['ATL', 'FTY', 'PDK', 'RYY', 'FFC'],
 'Austin': ['AUS'],
 'Baltimore': ['BWI', 'MTN'],
 'Baton Rouge': ['BTR'],
 ...
 # so on and so forth

交叉稳定航班号的数据段:

代码语言:javascript
复制
DEST    ABE  ABQ  ABY  ALB   ATL  AUS  AVP  BHM  BNA  
ORIGIN                                                  
ABE       0    0    0    0   128    0    1    0    0    
ABQ       0    0    0    0   181   24    0    4    0    
ABY       0    0    0    0    82    0    0    0    0    
ALB       0    0    0    0   196    4    0    0    1    
ATL     132  181   95  224     0  668   71  672  634    
AUS       0   20    0    0   655    0    0    1  116    
AVP       0    0    0    0    63    0    0    0    0    
BHM       0    3    0    0   640    0    0    0    4    
BNA       0    0    0    0   661  105    0    4    0 

我想制作一个这样的数据格式:

代码语言:javascript
复制
 DEST        Akron Albany Albuquerque Allentown Atlanta ....
 ORIGIN
 Akron         0     19       34         0         59     
 Albany       10      0        3        15         21     
 Albuquerque  13      3        0        14          3    
 Allentown     0     10       17         0          5    
 Atlanta      50     21       23         2          0    
 ...

非常感谢所有的帮助,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 16:51:51

IIUC,从dict创建替换dict,并使用城市名称replace列和索引,然后执行sum

代码语言:javascript
复制
s={'Akron': ['AKC', 'CAK', 'AKO'],
 'Albany': ['ALB', 'ABY', 'ALH'],
 'Albuquerque': ['ABQ'],
 'Allentown': ['ABE'],
 'Atlanta': ['ATL', 'FTY', 'PDK', 'RYY', 'FFC'],
 'Austin': ['AUS'],
 'Baltimore': ['BWI', 'MTN'],
 'Baton Rouge': ['BTR']}

s1=pd.Series(s).apply(pd.Series).stack().reset_index()

dicttoreplace=dict(zip(s1[0],s1['level_0']))


df.columns=pd.Series(df.columns).replace(dicttoreplace)
df.index=pd.Series(df.index).replace(dicttoreplace)

df.sum(axis=1,level=0).sum(level=0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49034336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档