Python 熊猫数据帧只有一行

Python 熊猫数据帧只有一行,python,pandas,dataframe,Python,Pandas,Dataframe,我在列出数据帧行时遇到问题。下面的函数只返回一行(如果缩进返回第一行,如果不缩进返回最后一行)。有人知道问题出在哪里吗 def ols_regression(formula, framedict): for yp in framedict.keys(): ols_model = ols(formula, framedict[str(yp)]).fit() year = int(yp[:-5]) params = ols_model.

我在列出数据帧行时遇到问题。下面的函数只返回一行(如果缩进返回第一行,如果不缩进返回最后一行)。有人知道问题出在哪里吗

def ols_regression(formula, framedict):
    for yp in framedict.keys():
        ols_model = ols(formula, framedict[str(yp)]).fit()
        year = int(yp[:-5])    
        params = ols_model.params

        d = (dict(yp = yp, year = year, formula=formula, R_squared=ols_model.rsquared,
            intercept = params.values[0], DP1 = params.values[1], I = params.values[2], P = params.values[3],  
            p_intercept = ols_model.pvalues[0], p_DP1 = ols_model.pvalues[1], p_I = ols_model.pvalues[2], 
            p_P = ols_model.pvalues[3]))

    return pd.DataFrame(d, index=[0]) 

我通过将字典附加到数组来解决这个问题

def ols_regression(formula, framedict):

    arr = []

    for yp in framedict.keys():
        ols_model = ols(formula, framedict[str(yp)]).fit()
        year = int(yp[:-5])    
        params = ols_model.params

        arr.append(dict(yp = yp, year = year, formula=formula, R_squared=int(ols_model.rsquared),
            intercept = params.values[0], DP1 = params.values[1], I = params.values[2], P = params.values[3],  
            p_intercept = ols_model.pvalues[0], p_DP1 = ols_model.pvalues[1], p_I = ols_model.pvalues[2], 
            p_P = ols_model.pvalues[3]))

    return pd.DataFrame(arr)