Python 将数据追加到数据帧,但在某些列之后更改行
这是我写的一段代码,它创建了一些3个变量的增量,用于p值计算,其中三个变量是loc值或指标或任何数字的含义: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],
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