นุ่นรับค่าเฉลี่ยคอลัมน์ / ค่าเฉลี่ย


155

ฉันไม่สามารถรับค่าเฉลี่ยหรือค่าเฉลี่ยของคอลัมน์เป็นนุ่น มี 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()


df.groupby('weight')ไม่ใช่สิ่งที่คุณต้องการเพราะมันแยก df ออกเป็นคอลัมน์ที่แยกกันแต่ละอันมีค่าน้ำหนักแตกต่างกัน แทนที่จะเป็นเพียงแค่df['weight'].mean()
smci

allDF weight.mean ()
DataFramed

คำตอบ:


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

ลองdf.mean(axis=0), axis=0อาร์กิวเมนต์คำนวณคอลัมน์ฉลาดหมายถึงของ dataframe เพื่อผลจะaxis=1เป็นแถวฉลาดหมายถึงคุณจะได้รับค่าหลายค่า


13

ลองprint (df.describe())ยิงดู ฉันหวังว่ามันจะมีประโยชน์มากในการรับรายละเอียดโดยรวมของไฟล์ข้อมูลของคุณ


1
display(df.describe())จะดีกว่า (ในสมุดบันทึก Jupyter) เพราะdisplayจาก ipython ให้ HTML ที่จัดรูปแบบแทนที่จะเป็น ASCII ซึ่งมีประโยชน์ / เป็นที่ชื่นชอบมากขึ้น
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

นอกจากนี้ถ้าคุณต้องการที่จะได้รับความคุ้มค่าหลังจากพบroundmean

#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.