Python 将数据追加到数据帧,但在某些列之后更改行

Python 将数据追加到数据帧,但在某些列之后更改行,python,pandas,dataframe,Python,Pandas,Dataframe,这是我写的一段代码,它创建了一些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],

这是我写的一段代码,它创建了一些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)
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行,将它们从单列转换为6列,然后对接下来的6个值重复,以此类推。我想可能会创建一个系列或一个新的df,直到
j=8
,然后按行追加到整个df,但不确定这是否可行。谢谢

(编辑)

所以基本上,我想创建六个独立的数据帧,每个数据帧有50行x 6列的形状。我当前的数据帧有1800行x1列

对于第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点,我不确定是否能得到它,但从数据帧返回中,您可以做熊猫允许的任何事情

这将为您提供所需的df(功劳应归雷诺所有)

输出

   col1     col2    col3        col4    col5    col6
0   1.0     0.658   0.106743    0.7770  0.4590  0.3307
1   1.0     0.622   0.417800    0.3158  0.7674  0.7426

如果您将数据(输入和输出)添加为文本而不是图片,您可能会得到更快的响应。谢谢您的推荐。编辑了a.Reformate(x,y)参数的post,x应该匹配什么?现在,我得到一个值错误,表示无法将大小为1800的数组重塑为形状(25,6)。我猜这些形状是不正确的,因为我的帖子只有一部分数据。我想创建6个df,每个df都有一个形状(50行,6列,不计算页眉)。X应该是数据帧的长度除以6(您想要的列数)。将其更改为df。shape[0]*2确实创建了一个300行X 6列的df,但恐怕它是一个数据帧。是否可以创建六个单独的dfs,每个dfs具有50行x 6列的形状?查看这是否有助于将数据帧拆分为单独的数据块
a = np.array(df)
b= a.reshape(int(df.shape[0]/6),6)
df_new = pd.DataFrame(b)
df_new.columns =['col1','col2','col3','col4','col5','col6']
df_new
   col1     col2    col3        col4    col5    col6
0   1.0     0.658   0.106743    0.7770  0.4590  0.3307
1   1.0     0.622   0.417800    0.3158  0.7674  0.7426