我有一组“单向”航空公司数据,如下所示(实际数据中的每一行数字不是连续的或相同的):
origin dest a b c d e f
BOS JFK 1 2 3 4 5 6
DCA 1 2 3 4 5 6
JFK BOS 1 2 3 4 5 6
DCA 1 2 3 4 5 6
DCA BOS 1 2 3 4 5 6
JFK 1 2 3 4 5 6
我想获取“多向”数据,即如下所示的数据:
air1 air2 a b c d e f
BOS JFK 2 4 6 8 10 12
DCA 2 4 6 8 10 12
JFK DCA 2 4 6 8 10 12
我一直在试验数据透视表,但是到目前为止,还没有找到任何远程有用的解决方案。
最佳答案
您可以先按行对origin
和dest
列进行排序,然后再进行groupby
,sum
,因为看起来好像您的结果并不关心origin
和dest
的顺序:
import pandas as pd
df.reset_index(["origin", "dest"])
od = df.loc[:,'origin':'dest'].as_matrix()
od.sort()
df[['air1','air2']] = pd.DataFrame(od)
df.groupby(['air1','air2']).sum()
a b c d e f
air1 air2
BOS DCA 2 4 6 8 10 12
JFK 2 4 6 8 10 12
DCA JFK 2 4 6 8 10 12
关于python - 在 Pandas 中添加具有重复索引的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38002962/