动态数据框名称创建

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (10)

嗨,我需要不同名称的数据帧。数据框正在创建一个for循环,如下所示。

for lambda_ in range(0,len(tuned_parameter)-1):
    print ('....................................',lambda_)
    i=0
    for train_index, test_index in kf.split(X):

        print("Train:", train_index, "Validation:",test_index)
        X_train, X_test = X.iloc[train_index], X.iloc[test_index]
        print ('X train ............',X_train.shape)
        print ('X_test...............',X_test.shape)
        mean_returns_Train = X_train.mean()
        cov_matrix_Train=X_train.cov()
        mean_returns_Test = X_test.mean()
        cov_matrix_Test = X_test.cov()      
        max_s, min_s = display_simulated_ef_with_random(mean_returns_Train, cov_matrix_Train, num_portfolios, risk_free_rate,returns, tuned_parameter[lambda_])
        #print (max_s.T)
        appended_data.append(max_s.T)


    appended_data = pd.concat(appended_data, axis=1)   
    print (appended_data.mean(axis=1))
    i=i+1

但是我需要我的for循环,例如,additional_data0,attached_data1,attached_data3 .....

如何创建多个数据框,其名称以相关的“i”值结尾

提问于
用户回答回答于

这个问题适用于如下调整。正如评论部分所建议的,使用字典来存储数据帧。

whole_dataframes = {}

#k = int(np.floor(float(X.shape[0]) / number_folds))
weights = np.zeros((3,num_portfolios))
for lambda_ in range(0,len(tuned_parameter)-1):
    print ('....................................',lambda_)
    i=0
    appended_data = []


    for train_index, test_index in kf.split(X):

        print("Train:", train_index, "Validation:",test_index)
        X_train, X_test = X.iloc[train_index], X.iloc[test_index]
        print ('X train ............',X_train.shape)
        print ('X_test...............',X_test.shape)
        mean_returns_Train = X_train.mean()
        cov_matrix_Train=X_train.cov()
        mean_returns_Test = X_test.mean()
        cov_matrix_Test = X_test.cov()      
        max_s, min_s = display_simulated_ef_with_random(mean_returns_Train, cov_matrix_Train, num_portfolios, risk_free_rate,returns, tuned_parameter[lambda_])
        #print (max_s.T)
        appended_data.append(max_s.T)


    appended_data = pd.concat(appended_data, axis=1)      
    whole_dataframes['Variable{}'.format(i)]=appended_data.mean(axis=1)
    print (whole_dataframes['Variable{}'.format(i)])
    i=i+1

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问12 回答
  • 四无君

    0 粉丝0 提问3 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    46 粉丝0 提问2 回答
  • 拉布拉多拉不多

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券