从头开始设置特定的多索引

问题描述 投票:0回答:1

我的任务如下:我需要从头开始以数据帧的形式构建几个表。特别是,每个表对于每个标识符总是相同的(摘要统计表的排序)。例如:

 result= {'Value':[mean_t,mean_t_1,mean_diff_lev, mean_diff_log],
             'T-stat':[np.NaN,np.NaN,t_diff_lev, t_diff_log],
             'Type':['XL','XL','XL', 'XL']}
 result=pd.DataFrame.from_dict(result,orient='index',
                                  columns=['Square_t','Square_t_1',
                                           'Mean diff','Mean diff log'])

作为结果给我:

        Square_t Square_t_1 Mean diff Mean diff log
Value   502.123    533.324  -31.2018    -0.0567523
T-stat      NaN        NaN  -3.33098      -5.38749
Type         XL         XL        XL            XL

我有一个函数,可以计算在那里使用的所有值,最后,它从值字典创建上面给出的数据框。我需要设置一个由两个部分组成的多重索引:第一个(或外部)一个是标识符(例如“ Roger”),第二个(或内部)是我已经拥有的,即列表[ C0]。结果应如下所示:

['Value','T-Stat'.'Type']

或此:

             Square_t Square_t_1 Mean diff Mean diff log
Roger Value   502.123    533.324  -31.2018    -0.0567523
      T-stat      NaN        NaN  -3.33098      -5.38749
      Type         XL         XL        XL            XL

然后,目标是可以通过附加或连接具有不同ID的不同数据框来构建更大的数据框。

dataframe indexing multi-index
1个回答
0
投票

我自己找到了答案。最简单的方法是使用pandas方法ID Var Square_t Square_t_1 Mean diff Mean diff log Roger Value 502.123 533.324 -31.2018 -0.0567523 T-stat NaN NaN -3.33098 -5.38749 Type XL XL XL XL 。与其为每个ID创建具有多索引的数据框,不如为每个单个ID创建不带ID的数据框,然后创建所有数据框,并且在跟踪列表中的各种ID之后,我们可以简单地将所有单个ID串联起来数据帧。假设我们有两个数据框concat类型:

df1,df2

对于ID Square_t Square_t_1 Mean diff Mean diff log Value 502.123 533.324 -31.2018 -0.0567523 T-stat NaN NaN -3.33098 -5.38749 Type XL XL XL XL 。我们运行:

['Roger','Kyle']

结果将确实是一个多索引数据框:

pd.concat([df1,df2],keys=['Roger','Kyle'])
© www.soinside.com 2019 - 2024. All rights reserved.