os pandas obtêm a média da coluna / média

155

Não consigo obter a média ou a média de uma coluna nos pandas. A tem um quadro de dados. Nenhuma das coisas que tentei abaixo me fornece a média da colunaweight

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

O seguinte retorna vários valores, não um:

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

O mesmo acontece com isso:

allDF.groupby('weight').mean()
PepperoniPizza
fonte
df.groupby('weight')não era o que você queria, porque dividia o df em colunas separadas, cada uma com um valor distinto de peso. Em vez de apenasdf['weight'].mean()
smci 16/02/2019
allDF. weight.mean ()
DataFramed 12/06

Respostas:

266

Se você deseja apenas a média da weightcoluna, selecione a coluna (que é uma série) e chame .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
DSM
fonte
1
e se eu quisesse ter uma média de cada coluna?
21718 Chris
3
@Chris df.describe ()
Abhishek Poojary
2
@Chris df.mean () fornece o peso de cada coluna e o retorna em uma série.
emschorsch 22/02/19
24

Tente df.mean(axis=0), o axis=0argumento calcula a média das colunas do quadro de dados, para que o resultado seja igual às axis=1linhas, para que você esteja obtendo vários valores.

Chandu
fonte
13

Tente tentar print (df.describe()). Espero que seja muito útil obter uma descrição geral do seu quadro de dados.

nainômetro
fonte
1
display(df.describe())é melhor (em Jupyter Notebooks) porque displaydo ipython fornece HTML formatado em vez de ASCII, o que é mais visualmente útil / agradável.
Zhanwen Chen
6

você pode usar

df.describe() 

você obterá estatísticas básicas do quadro de dados e, para obter média de uma coluna específica, poderá usar

df["columnname"].mean()
Arun Singh
fonte
1
Esta é uma duplicata das respostas mencionadas acima.
Mehdi Boukhechba
6

Você também pode acessar uma coluna usando a notação de ponto (também chamada de acesso ao atributo) e, em seguida, calcular sua média:

df.your_column_name.mean()
Nikos Tavoularis
fonte
4

Média para cada coluna em 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

e se você quiser média de todas as colunas:

df.stack().mean()
6.0
Harvey
fonte
1

Além disso, se você deseja obter o roundvalor depois de encontrar o 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
Md. Tanvir Raihan
fonte
1

Você pode usar uma das duas instruções abaixo:

numpy.mean(df['col_name'])
# or
df['col_name'].mean()
davidbilla
fonte
Por favor, enriquecer sua resposta com comentários adequados. Caso contrário, é provável que seja marcado para exclusão
Don
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())
CAÇADOR
fonte
0

Você pode simplesmente acessar: df.describe () que fornecerá todos os detalhes relevantes necessários, mas para encontrar o valor mínimo, máximo ou médio de uma coluna específica (por exemplo, 'pesos' no seu caso), use:

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