如何将某些列和行合并在一起,从而将合并的单元格的值相加?
目前,我有熊猫的数据,航班数之间的机场。不过,我需要几个城市之间的航班。
我有一个字典,以城市名称作为键,机场标识代码列表作为值。有什么方法可以将与同一城市相关的机场的行和列组合起来吗?
字典:
{'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交叉稳定航班号的数据段:
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 我想制作一个这样的数据格式:
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
...非常感谢所有的帮助,谢谢。
发布于 2018-02-28 16:51:51
IIUC,从dict创建替换dict,并使用城市名称replace列和索引,然后执行sum。
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)https://stackoverflow.com/questions/49034336
复制相似问题