小能豆

将数据附加到数据框但在特定列数之后更改行

py

这是我编写的代码,它创建了一些由 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] = 150data.shape[1] = 8

此代码创建了正确的 p 值,但数据框为 1800 行 x 1 列。但是,我想拆分生成的 df,以便代码生成六个不同的数据框,每个data.shape[1]-2数据框都有列数(因此为 6 列)。以下是一些示例截图:

1)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 中,但不确定这是否可行或可行。谢谢!

编辑)

因此,基本上,我想创建六个单独的数据框,每个数据框都有 50 行 x 6 列的形状。我当前的数据框有 1800 行 x 1 列。


阅读 14

收藏
2025-01-10

共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 允许的所有事情......

2025-01-10