gấu trúc lấy trung bình cột / trung bình


155

Tôi không thể lấy trung bình hoặc trung bình của một cột trong gấu trúc. A có một khung dữ liệu. Không có điều gì tôi đã thử dưới đây cho tôi mức trung bình của cộtweight

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

Sau đây trả về một số giá trị, không phải một giá trị:

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

Điều này cũng vậy:

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


df.groupby('weight')không phải là những gì bạn muốn, bởi vì nó chia df thành các cột riêng biệt, mỗi cột có một giá trị trọng lượng riêng biệt. Thay vì chỉdf['weight'].mean()
smci

allDF. weight.mean ()
DataFazed

Câu trả lời:


266

Nếu bạn chỉ muốn giá trị trung bình của weightcột, hãy chọn cột (là Sê-ri) và gọi .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
và nếu tôi muốn lấy trung bình của mỗi cột thì sao?
Chris

3
@Chris df.describe ()
Abhishek Poojary

2
@Chris df.mean () cung cấp cho bạn trọng số của mỗi cột và trả về nó trong một chuỗi.
emschorsch

24

Hãy thử df.mean(axis=0), axis=0đối số tính toán trung bình thông minh cột của khung dữ liệu để kết quả sẽ axis=1là trung bình thông minh hàng để bạn nhận được nhiều giá trị.


13

Hãy cố gắng đưa ra print (df.describe())một shot. Tôi hy vọng nó sẽ rất hữu ích để có được một mô tả tổng thể về khung dữ liệu của bạn.


1
display(df.describe())là tốt hơn (trong Jupyter Notebooks) vì displaytừ ipython cung cấp HTML được định dạng thay vì ASCII, điều này hữu ích / dễ chịu hơn về mặt trực quan.
Zhanwen Chen

6

bạn có thể dùng

df.describe() 

bạn sẽ nhận được số liệu thống kê cơ bản của khung dữ liệu và để lấy giá trị trung bình của cột cụ thể mà bạn có thể sử dụng

df["columnname"].mean()

1
Đây là một bản sao của các câu trả lời được đề cập ở trên.
Mehdi Boukhechba

6

Bạn cũng có thể truy cập một cột bằng cách sử dụng ký hiệu chấm (còn được gọi là truy cập thuộc tính) và sau đó tính toán giá trị trung bình của nó:

df.your_column_name.mean()

4

Có nghĩa là cho mỗi cột trong 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

và nếu bạn muốn trung bình của tất cả các cột:

df.stack().mean()
6.0

1

Ngoài ra nếu bạn muốn nhận được roundgiá trị sau khi tìm thấy 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

Bạn có thể sử dụng một trong hai câu dưới đây:

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

Xin vui lòng, làm phong phú câu trả lời của bạn với ý kiến ​​thích hợp. Nếu không, nó có khả năng bị đánh dấu để xóa
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

Bạn có thể chỉ cần tìm: df.describe () sẽ cung cấp cho bạn tất cả các chi tiết có liên quan bạn cần, nhưng để tìm giá trị tối thiểu, tối đa hoặc trung bình của một cột cụ thể (giả sử 'trọng số' trong trường hợp của bạn), hãy sử dụng:

    df['weights'].mean(): For average value
    df['weights'].max(): For maximum value
    df['weights'].min(): For minimum value
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.