在python中创建多索引

时间:2019-12-29 14:59:27

标签: python pandas

我正在尝试在python中创建一个空白的多索引,但是内部级别(#of基金)并没有按照我想要的方式出现。每个VY应该都有完整的Fund1-15系列,但是输出似乎是1:1。有什么想法吗?

例如,我需要: VY1 =外部索引 ->基金#1,基金#2,基金#3,...基金#15 =内部指数 VY2 ->基金#1,基金#2,基金#3,...基金#15 =内部指数 等等

使用下面的错误代码,它只是在这样做: VY1基金1 VY2基金2 VY3基金3 等等

outside = ['VY1','VY2','VY3','VY4','VY5','VY6','VY7','VY8','VY9','VY10','VY11','VY12','VY13','VY14','VY15']
inside = ['#fund1','#fund2','#fund3','#fund4','#fund5','#fund6','#fund7','#fund8','#fund9','#fund10','#fund11','#fund12','#fund13','#fund14','#fund15']
hier_index = list(zip(outside,inside))
hier_index = pd.MultiIndex.from_tuples(hier_index)
df = pd.DataFrame(0,index=hier_index,columns=['TVPI series'])

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您想创建分层的多索引:

outside = ['VY1','VY2','VY3','VY4','VY5','VY6','VY7','VY8','VY9','VY10','VY11','VY12','VY13','VY14','VY15']
inside = ['#fund1','#fund2','#fund3','#fund4','#fund5','#fund6','#fund7','#fund8','#fund9','#fund10','#fund11','#fund12','#fund13','#fund14','#fund15']

hier_index = []
for k in outside:
    for l in inside:
        hier_index.append( (k, l) )

hier_index = pd.MultiIndex.from_tuples(hier_index, names=['first', 'second'])
df = pd.DataFrame(0,index=hier_index,columns=['TVPI series'])

print(df)

打印:

               TVPI series
first second              
VY1   #fund1             0
      #fund2             0
      #fund3             0
      #fund4             0
      #fund5             0
...                    ...
VY15  #fund11            0
      #fund12            0
      #fund13            0
      #fund14            0
      #fund15            0

[225 rows x 1 columns]