Python 计算每列的统计信息并将其添加到空数据帧

Python 计算每列的统计信息并将其添加到空数据帧,python,pandas,statistics,Python,Pandas,Statistics,我的想法是从数据帧的每一列中获取统计信息,如均值、中值、var、min、max,并将其保存到新的空数据帧中。我的数据框如下所示: A B C D 0 3 4 2 1 1 4 3 3 1 2 4 2 3 0 A_mean | A_median | A_var | A_max | A_min | B_mean | B_median | B_var | B_max |B_min | ... 1 2

我的想法是从数据帧的每一列中获取统计信息,如均值、中值、var、min、max,并将其保存到新的空数据帧中。我的数据框如下所示:

    A   B   C   D
0   3   4   2   1
1   4   3   3   1
2   4   2   3   0
A_mean | A_median | A_var | A_max | A_min | B_mean | B_median | B_var | B_max  |B_min | ...
 1          2         1       1       0      1           1        1       2       1     ...
我的新数据框应该如下所示:

    A   B   C   D
0   3   4   2   1
1   4   3   3   1
2   4   2   3   0
A_mean | A_median | A_var | A_max | A_min | B_mean | B_median | B_var | B_max  |B_min | ...
 1          2         1       1       0      1           1        1       2       1     ...
我不能使用df.descripe(),因为它没有var或median

我的想法是:

row=pd.DataFrame()
for column in df:
        row = row.append({column + '_mean':df_test[column].mean()}, ignore_index=True) 
        row = row.append({column + '_median':df_test[column].median()}, ignore_index=True)
        row = row.append({column + '_var':df_test[column].var()}, ignore_index=True)
        row = row.append({column + '_max':df_test[column].max()}, ignore_index=True)
        row = row.append({column + '_min':df_test[column].min()}, ignore_index=True)
但是我得到了


我的目标是把它放在一行,而不是10行。如何更改代码?

如果可能,请更改格式并与列表中的函数一起使用:

df = df.agg(['mean','median', 'var','max','min'])
print (df)
               A    B         C         D
mean    3.666667  3.0  2.666667  0.666667
median  4.000000  3.0  3.000000  1.000000
var     0.333333  1.0  0.333333  0.333333
max     4.000000  4.0  3.000000  1.000000
min     3.000000  2.0  2.000000  0.000000
或者添加并转置一行的最后平坦列名称
DataFrame

df = df.agg(['mean','median', 'var','max','min']).unstack().to_frame().T
df.columns = df.columns.map('_'.join)
print (df)
     A_mean  A_median     A_var  A_max  A_min  B_mean  B_median  B_var  B_max  \
0  3.666667       4.0  0.333333    4.0    3.0     3.0       3.0    1.0    4.0   

   B_min    C_mean  C_median     C_var  C_max  C_min    D_mean  D_median  \
0    2.0  2.666667       3.0  0.333333    3.0    2.0  0.666667       1.0   

      D_var  D_max  D_min  
0  0.333333    1.0    0.0  

嘿@jezrael是否有可能只选择A和B来构建均值、中位数、var、max、min?