팬더는 평균 / 평균을 얻는다


155

팬더에서 열의 평균 또는 평균을 얻을 수 없습니다. 데이터 프레임이 있습니다. 아래에서 시도한 것 중 어느 것도 열의 평균을 제공하지 않습니다.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()


df.groupby('weight')df는 각각 무게 값이 다른 별도의 열로 분할되기 때문에 원하는 것이 아닙니다. 그냥df['weight'].mean()
smci

allDF. weight.mean ()
프레임

답변:


267

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
각 열의 평균을 얻으려면 어떻게해야합니까?
Chris

3
@Chris df.describe ()
Abhishek Poojary

2
@Chris df.mean ()은 각 열의 가중치를 제공하고 연속적으로 반환합니다.
emschorsch

24

try df.mean(axis=0), axis=0argument는 데이터 프레임의 열 단위 평균을 계산하므로 결과 axis=1는 행 단위 평균이므로 여러 값을 얻습니다.


13

print (df.describe())주사를 시도하십시오 . 귀하의 데이터 프레임에 대한 전반적인 설명을 얻는 것이 매우 도움이되기를 바랍니다.


1
display(df.describe())displayipython에서 ASCII보다 형식이 지정된 HTML을 제공 하므로 시각적으로 유용하고 기쁘게 생각 하기 때문에 Jupyter Notebook에서 더 좋습니다 .
Zhanwen Chen

6

당신이 사용할 수있는

df.describe() 

데이터 프레임의 기본 통계를 얻고 사용할 수있는 특정 열의 평균을 얻습니다.

df["columnname"].mean()

1
이것은 위에서 언급 한 답변과 중복됩니다.
Mehdi Boukhechba

6

점 표기법 (속성 액세스라고도 함)을 사용하여 열에 액세스 한 다음 평균을 계산할 수도 있습니다.

df.your_column_name.mean()

4

각 열의 평균 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

1

또한를 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

1

아래 두 문장 중 하나를 사용할 수 있습니다.

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

적절한 의견으로 답변을 풍부하게하십시오. 그렇지 않으면 삭제 된 것으로 표시 될 수 있습니다.
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())

0

df.describe ()를 사용하면 필요한 모든 관련 세부 정보를 제공하지만 특정 열의 최소, 최대 또는 평균 값 (예 : '무게')을 찾으려면 다음을 사용하십시오.

    df['weights'].mean(): For average value
    df['weights'].max(): For maximum value
    df['weights'].min(): For minimum value
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.