这是我编写的代码,它创建了一些由 3 个变量组成的增量,用于 p 值计算,其中这三个变量是 loc 值或指标或任何数字的含义:
i = 0 k = 2 j = 2 result = [] df = pd.DataFrame() while j < data.shape[1]: tstat, data_stat = ttest_ind_from_stats(data.loc[i][k], data.loc[i + 1][k], data.loc[i + 2][k], data.loc[i][j], data.loc[i + 1][j], data.loc[i + 2][j]) result.append([data_stat]) j+=1 if j == 8: j = 2 i = i + 3 if i == data.shape[0]: k = k + 1 i = 0 if k > 7: break data_result = pd.DataFrame(result)
其中data.shape[0] = 150和data.shape[1] = 8。
data.shape[0] = 150
data.shape[1] = 8
此代码创建了正确的 p 值,但数据框为 1800 行 x 1 列。但是,我想拆分生成的 df,以便代码生成六个不同的数据框,每个data.shape[1]-2数据框都有列数(因此为 6 列)。以下是一些示例截图:
data.shape[1]-2
1)data_result我当前代码中的数据框:
data_result
1 0.658 0.1067 0.777 0.459 0.3307 1 0.622 0.4178 0.3158 0.7674 0.7426
2)我想要的是:
col1 col2 col3 col4 col5 col6 1 0.658 0.1067 0.777 0.459 0.3307 1 0.622 0.4178 0.3158 0.7674 0.7426
代码中应该有六个上述数据框。
\3) 然后我最好在每个数据框的左侧添加一列,用于插入每行的占位符值(省略屏幕截图)。此步骤只是可选的。
因此,基本上,我将生成的数据框除以每 6 行,将它们从单列转置为六列,然后对接下来的六个值重复此操作,依此类推。我想也许可以创建一个系列或一个新的 df,然后j = 8将行附加到整体 df 中,但不确定这是否可行或可行。谢谢!
j = 8
编辑)
因此,基本上,我想创建六个单独的数据框,每个数据框都有 50 行 x 6 列的形状。我当前的数据框有 1800 行 x 1 列。
对于要点2:你可以用numpy尝试一下:
import numpy as np import pandas as pd result_array= np.asarray(result) # reshape for 150 rows and 6 columns result_array.reshape(150,6) #if number of row is undefined and 6 columns #result_array.reshape(-1,6) return pd.DataFrame(result_array)
对于第 3 点,我不确定是否能够理解,但是从数据框返回中你可以做 pandas 允许的所有事情......