如何计算Pandas中列的平均值?

时间:2015-06-24 21:22:11

标签: python pandas

我无法得到大熊猫中一列的平均值或平均值。 A有一个数据帧。我在下面尝试的任何内容都没有给出weight

列的平均值
>>> allDF 
         ID           birthyear  weight
0        619040       1962       0.1231231
1        600161       1963       0.981742
2      25602033       1963       1.3123124     
3        624870       1987       0.94212

以下内容返回多个值,而不是一个:

allDF[['weight']].mean(axis=1)

这样做:

allDF.groupby('weight').mean()

12 个答案:

答案 0 :(得分:171)

如果您只想要weight列的平均值,请选择列(系列)并调用.mean()

In [479]: df
Out[479]: 
         ID  birthyear    weight
0    619040       1962  0.123123
1    600161       1963  0.981742
2  25602033       1963  1.312312
3    624870       1987  0.942120

In [480]: df["weight"].mean()
Out[480]: 0.83982437500000007

答案 1 :(得分:8)

尝试df.mean(axis=0)axis=0参数计算数据帧的列均值,因此结果将是axis=1是行均值,因此您将获得多个值。

答案 2 :(得分:6)

尝试给print (df.describe())一个机会。我希望对您的数据框进行全面描述会非常有帮助。

答案 3 :(得分:2)

您可以使用

df.describe() 

您将获得数据框的基本统计信息,并可以使用

来获取特定列的均值
df["columnname"].mean()

答案 4 :(得分:2)

另外,如果要在找到round之后获得mean的值。

#Create a DataFrame
df1 = {
    'Subject':['semester1','semester2','semester3','semester4','semester1',
               'semester2','semester3'],
   'Score':[62.73,47.76,55.61,74.67,31.55,77.31,85.47]}
df1 = pd.DataFrame(df1,columns=['Subject','Score'])

rounded_mean = round(df1['Score'].mean()) # specified nothing as decimal place
print(rounded_mean) # 62

rounded_mean_decimal_0 = round(df1['Score'].mean(), 0) # specified decimal place as 0
print(rounded_mean_decimal_0) # 62.0

rounded_mean_decimal_1 = round(df1['Score'].mean(), 1) # specified decimal place as 1
print(rounded_mean_decimal_1) # 62.2

答案 5 :(得分:1)

您还可以使用点表示法访问列(也称为属性访问),然后计算其均值:

df.your_column_name.mean()

答案 6 :(得分:1)

df中每列的平均值:

    A   B   C
0   5   3   8
1   5   3   9
2   8   4   9

df.mean()

A    6.000000
B    3.333333
C    8.666667
dtype: float64

,如果要获得所有列的平均值:

df.stack().mean()
6.0

答案 7 :(得分:0)

您可以使用以下两个语句之一

np.mean(df['col_name'])

df['col_name'].mean())

答案 8 :(得分:0)

You can easily followthe following code
    `import pandas as pd 
    import numpy as np 

    classxii = {'Name':['Karan','Ishan','Aditya','Anant','Ronit'],
        'Subject':['Accounts','Economics','Accounts','Economics','Accounts'],
        'Score':[87,64,58,74,87],
        'Grade':['A1','B2','C1','B1','A2']}
    df = pd.DataFrame(classxii,index = ['a','b','c','d','e'],columns=['Name','Subject','Score','Grade'])
    print(df)
    #use the below for mean if you already have a dataframe
print('mean of score is:')
print(df[['Score']].mean())

答案 9 :(得分:0)

您可以简单地去: df.describe() 可以为您提供所需的所有相关详细信息,但要查找特定列的最小值,最大值或平均值(在本例中为“权重”),请使用:

    df['weights'].mean(): For average value
    df['weights'].max(): For maximum value
    df['weights'].min(): For minimum value

答案 10 :(得分:0)

请注意,它首先必须是数字数据类型。

 import pandas as pd
 df['column'] = pd.to_numeric(df['column'], errors='coerce')

下一步,使用describe()查找一列或所有数字列的均值。

df['column'].mean()
df.describe()

describe结果的示例:

          column 
count    62.000000 
mean     84.678548 
std     216.694615 
min      13.100000 
25%      27.012500 
50%      41.220000 
75%      70.817500 
max    1666.860000

答案 11 :(得分:0)

为此,您只需要遵循以下语法:

df.['columnName'].mean()