在 pandas 中获得某一列的平均值/中位数

我无法在 pandas 得到某一列的平均值或中位数。A 有一个 dataframe。下面我尝试的两种方法都没有给出列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()
876930 次浏览

如果你只想要weight列的平均值,选择该列(它是一个Series)并调用.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

试着给print (df.describe())一个机会。我希望这将是非常有用的,以获得您的数据框架的整体描述。

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

你可以使用

df.describe()

您将获得数据框架的基本统计数据,并获得您可以使用的特定列的平均值

df["columnname"].mean()

你也可以使用点符号(也称为属性访问)访问一个列,然后计算它的平均值:

df.your_column_name.mean()

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

你可以使用下面两种说法中的任何一种:

numpy.mean(df['col_name'])
# or
df['col_name'].mean()

您可以轻松地执行以下代码

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())

此外,如果你想在找到mean. 0后获得round值。

#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
你可以简单地选择: df.describe () 这将为您提供所需的所有相关细节,但要找到特定列的最小值,最大值或平均值(在您的情况下说“权重”),使用:

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

请注意,它首先需要是数值数据类型。

 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

你可以使用方法agg (aggregate):

df.agg('mean')

可以应用多个统计数据:

df.agg(['mean', 'max', 'min'])