在新列中添加数据帧的统计信息

2024-04-25 06:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

   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

我为F列添加了一个新的统计数据,如下所示:

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  

谢谢你, 右


Tags: columns数据对象方法函数代码dfindex
2条回答

您可以用describe()查找DataFrame。你知道吗

df.describe()

这个函数同时提供了一些有用的东西。例如,您将得到三个四分位数,平均值、计数、最小值和最大值以及标准差。这非常有用,尤其是在探索性数据分析中。你知道吗

举个例子:

>>> 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.std(axis=0)

数据帧的行标准偏差

df.std(axis=1)

所以,不是特定于行或列,您可以尝试下面的方法。你知道吗

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

您可以使用.describe()并选择实际需要的行。你知道吗

相关问题 更多 >