Python 在新列中添加dataframe的统计信息

Python 在新列中添加dataframe的统计信息,python,dataframe,statistics,Python,Dataframe,Statistics,我有一个数据帧df,如下所示: A B C D E F .... Z 0 3 4 7 1 5 10 .... 2 1 2 5 8 3 3 18 .... 3 2 5 4 9 5 6 75 .... 2 3 1 5 4 7 9 7 .... 1 4 4 5 2 1 2 10 .... 1 5 7 4 3 0 4 10 .... 0 df['F_mean'] = d

我有一个数据帧df,如下所示:

   A  B  C  D  E  F   ....   Z
0  3  4  7  1  5  10  ....   2
1  2  5  8  3  3  18  ....   3
2  5  4  9  5  6  75  ....   2
3  1  5  4  7  9  7   ....   1
4  4  5  2  1  2  10  ....   1
5  7  4  3  0  4  10  ....   0
df['F_mean'] = df['F'].mean()
df['F_std'] = df['F'].std()
df['F_min'] = df['F'].min()
df['F_max'] = df['F'].max()
我添加了一个新的列,列F的统计数据如下:

   A  B  C  D  E  F   ....   Z
0  3  4  7  1  5  10  ....   2
1  2  5  8  3  3  18  ....   3
2  5  4  9  5  6  75  ....   2
3  1  5  4  7  9  7   ....   1
4  4  5  2  1  2  10  ....   1
5  7  4  3  0  4  10  ....   0
df['F_mean'] = df['F'].mean()
df['F_std'] = df['F'].std()
df['F_min'] = df['F'].min()
df['F_max'] = df['F'].max()
是否有任何方法可以添加所有列的统计数据mean、std、min、max,而不必手动键入每个新列?我尝试用这段代码来实现mean函数,但我得到了一个错误代码'Index'对象没有属性'mean'

df[columns + '_mean'] = df.columns.mean()
我的目标是将这样的列添加到我的df数据帧中,但是对于每一列,从A到Z

  A_mean   A_min   A_max ....Z_max
0  1        4        7  
1  1        4        7  
2  1        4        7  
3  1        4        7  
4  1        4        7  
5  1        4        7  
谢谢,,
R

您可以使用
.descripe()
并选择实际需要的行。

您可以使用
.descripe()
并选择实际需要的行。

您可以使用
descripe()
查找
数据帧

此函数可同时提供多个有用的功能。例如,您将获得三个四分位数,平均值、计数、最小值和最大值以及标准偏差。这非常有用,尤其是在探索性数据分析中

举个例子:

>>> df
   col1  col2  col3
0     1    50     3
1     1    40     3
2     1    11     3
3     2    10     4
4     2    25     4
>>> df.describe()
           col1       col2      col3
count  5.000000   5.000000  5.000000
mean   1.400000  27.200000  3.400000
std    0.547723  17.655028  0.547723
min    1.000000  10.000000  3.000000
25%    1.000000  11.000000  3.000000
50%    1.000000  25.000000  3.000000
75%    2.000000  40.000000  4.000000
max    2.000000  50.000000  4.000000
我不认为把它们都作为一个列,但你可以定义

数据帧的列标准偏差 数据帧的行标准偏差 所以,不是特定于行或列,您可以尝试下面的方法

df['F_mean'] = df.mean(axis=1)
df['F_std'] = df.std(axis=1)
df['F_min'] = df.min(axis=1)
df['F_max'] = df.max(axis=1)
更好:

>>> df.describe().loc[['count','mean', 'std', 'min', 'max']]
           col1       col2      col3
count  5.000000   5.000000  5.000000
mean   1.400000  27.200000  3.400000
std    0.547723  17.655028  0.547723
min    1.000000  10.000000  3.000000
max    2.000000  50.000000  4.000000

您可以使用
descripe()
查找
DataFrame

此函数可同时提供多个有用的功能。例如,您将获得三个四分位数,平均值、计数、最小值和最大值以及标准偏差。这非常有用,尤其是在探索性数据分析中

举个例子:

>>> df
   col1  col2  col3
0     1    50     3
1     1    40     3
2     1    11     3
3     2    10     4
4     2    25     4
>>> df.describe()
           col1       col2      col3
count  5.000000   5.000000  5.000000
mean   1.400000  27.200000  3.400000
std    0.547723  17.655028  0.547723
min    1.000000  10.000000  3.000000
25%    1.000000  11.000000  3.000000
50%    1.000000  25.000000  3.000000
75%    2.000000  40.000000  4.000000
max    2.000000  50.000000  4.000000
我不认为把它们都作为一个列,但你可以定义

数据帧的列标准偏差 数据帧的行标准偏差 所以,不是特定于行或列,您可以尝试下面的方法

df['F_mean'] = df.mean(axis=1)
df['F_std'] = df.std(axis=1)
df['F_min'] = df.min(axis=1)
df['F_max'] = df.max(axis=1)
更好:

>>> df.describe().loc[['count','mean', 'std', 'min', 'max']]
           col1       col2      col3
count  5.000000   5.000000  5.000000
mean   1.400000  27.200000  3.400000
std    0.547723  17.655028  0.547723
min    1.000000  10.000000  3.000000
max    2.000000  50.000000  4.000000

是的,但是我如何在一个新的列中得到这个计数,平均值,std,min,max,比如我要求的df.F?@rafa_sa,刚刚更新了答案,看看是否有用。我理解你的意思,但是我必须为每一列写一个额外的代码
df['a_mean']=
df['a_std']=
df['a_min']=
df['A_max']=
然后对B、C、D、E、F直到Z都是一样的。我的问题是如何更容易地做到这一点,这样我就不必为每只手的每一列都写它了?试试..>>
df.descripe().loc['count','mean','std',min',max']
我会检查一下,看看我是否能对此有所了解。是的,但是我如何在一个新的列中得到这个计数,平均值,标准差,最小值,最大值,比如我要求的df.F?@raffa_sa,刚刚更新了答案,看看这是否有帮助。我明白你的意思,但是我必须为每一列写一个额外的代码
df['a_mean']=
df['A_std']=
df['A_min']=
df['A_max']=
,然后对B,C,D,E,F直到Z都是一样的。我的问题是,我如何更容易地做到这一点,这样我就不必为每只手的每一列都写了?试试..>
df.description().loc['count','mean','std','min']
我来查一下,看看能不能查到什么。