如何使用索引字典构建数据帧?

2024-04-24 13:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用一个数字的DF(Y)和一个'Names'索引和'Date'列,并对DF中没有的其他3个变量(X)计算PLS回归。 我想为这个DF的每个日期的每个名称提取beta'o',这个beta'o是用索引日期的循环来计算的。 问题是有很多数据(Y)丢失,因为每个日期都不存在所有的名称。 因此,我建立了一个索引字典o[I],其中包含了在特定日期存在的所有名称,依此类推。。 我的问题是:如何用带有日期和名称的beta作为列和索引来构建DF?你知道吗

import pandas as pd
import numpy as np

PLS的结果可以组织如下:

o={}
o[0]={'Date' : '1995-12-12', 'Names' : ['Jack','Jeff','Paul'] ,'Beta' : [0.254,0.12,0.35]}
o[1]={'Date' : '1995-12-13', 'Names' : ['Jack','Jeff','Paul'], 'Beta' : [0.21,0.11,0.31]}
o[2]={'Date' : '1995-12-14', 'Names' : ['Jack','Jeff','Paul','Olivia'], 'Beta' : [0.1,0.08,0.4,0.15]}
o[3]={'Date' : '1995-12-15', 'Names' : ['Jack','Jeff','Paul','Olivia'], 'Beta' : [0.2,0.13,0.37,0.09]}
o[4]={'Date' : '1995-12-16', 'Names' : ['Jeff','Paul','Olivia','Stef'], 'Beta' : [0.15,0.29,0.33,-0.01]}

Tags: 数据import名称dfdatenamesas数字
1条回答
网友
1楼 · 发布于 2024-04-24 13:46:05

您可以尝试以下方法:

# Create the dataframe
df = pd.concat(list(map(pd.DataFrame, o.values())))

# Reindex by Date and Names
df = df.set_index(['Date', 'Names'])

导致

                    Beta
Date       Names        
1995-12-12 Jack    0.254
           Jeff    0.120
           Paul    0.350
1995-12-13 Jack    0.210
           Jeff    0.110
           Paul    0.310
1995-12-14 Jack    0.100
           Jeff    0.080
           Paul    0.400
           Olivia  0.150
1995-12-15 Jack    0.200
           Jeff    0.130
           Paul    0.370
           Olivia  0.090
1995-12-16 Jeff    0.150
           Paul    0.290
           Olivia  0.330
           Stef   -0.010

相关问题 更多 >