如何使用python循环添加大熊猫数据帧

时间:2020-07-30 19:08:32

标签: python-3.x pandas

在循环添加数据帧时遇到一些问题:

我有一个具有以下结构的数据框:

df

A B C
1 2 3
4 5 6
7 8 9

然后我写一个代码:

alpha=[0.10,0.05,0.01]
beta=[0.10]
error_est=[0.10,0.20,0.25]

然后,我在alpha,beta and error_est上遍历df的每个组合,以创建9个不同的df,然后像这样将它们附加在一起:

import numpy as np
import pandas as pd
import scipy.stats as st
from itertools import product

app_dicti={}
appended_data=[]
for a, b, error in product(alpha,beta,error_est):
    
    z_sum=(st.norm.ppf(1-(a/2))+st.norm.ppf(1-b))**2
    req_samp_size_knw=round(z_sum*((1/error)**2),0)

    t_1_minus_alpha_by_2=st.t.ppf(1-(a/2),req_samp_size_knw)
    t_1_minus_beta=st.t.ppf(1-b,req_samp_size_knw)
    
    t_sum=(t_1_minus_alpha_by_2+t_1_minus_beta)**2
    
    req_samp_size=round(t_sum*((1/error)**2),0)
    
    df['sample_statistics']="alpha="+str(a)+"_"+"beta="+str(b)+"_"+"moe="+str(error)
    
    df['required_sample_size']=req_samp_size

    app_dicti["alpha="+str(a)+"_"+"beta="+str(b)+"_"+"moe="+str(error)]=df



for table_name,table in app_dicti.items():
   # store DataFrame in list
   appended_data.append(table)
  # see pd.concat documentation for more info

df_final = pd.concat(appended_data)

但是当我检查我的最终字典app_dicti时,它具有所有正确的键,但是每个键都具有相同的值,该值是循环的最后一个值。

1 个答案:

答案 0 :(得分:0)

此代码将表中的所有行设置为相同的值:

df['sample_statistics']="alpha="+str(a)+"_"+"beta="+str(b)+"_"+"moe="+str(error)
    
df['required_sample_size']=req_samp_size