Python 计算每列的统计信息并将其添加到空数据帧
我的想法是从数据帧的每一列中获取统计信息,如均值、中值、var、min、max,并将其保存到新的空数据帧中。我的数据框如下所示: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
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?