Pandas 统计

describe

在整个DataFrame上使用describe(),我们可以得到一个统计结果:

import pandas as pd

# 加载数据
movies_df = pd.read_csv("IMDB-Movie-Data.csv", index_col="Title")
movies_df.columns = ['rank', 'genre', 'description', 'director', 'actors', 'year', 'runtime', 
                     'rating', 'votes', 'revenue_millions', 'metascore']
# 应用describe
movies_df.describe()

输出

              rank         year      runtime       rating         votes  revenue_millions   metascore
count  1000.000000  1000.000000  1000.000000  1000.000000  1.000000e+03        872.000000  936.000000
mean    500.500000  2012.783000   113.172000     6.723200  1.698083e+05         82.956376   58.985043
std     288.819436     3.205962    18.810908     0.945429  1.887626e+05        103.253540   17.194757
min       1.000000  2006.000000    66.000000     1.900000  6.100000e+01          0.000000   11.000000
25%     250.750000  2010.000000   100.000000     6.200000  3.630900e+04         13.270000   47.000000
50%     500.500000  2014.000000   111.000000     6.800000  1.107990e+05         47.985000   59.500000
75%     750.250000  2016.000000   123.000000     7.400000  2.399098e+05        113.715000   72.000000
max    1000.000000  2016.000000   191.000000     9.000000  1.791916e+06        936.630000  100.000000

可以看到,结果中包含了:count(总数),mean(平均值),min(最小值)等等。

describe()也可以用在一个Series上:

movies_df['genre'].describe()

输出

count                        1000
unique                        207
top       Action,Adventure,Sci-Fi
freq                           50
Name: genre, dtype: object

可以看到,这个列有207个不同的值,最高的值是Action,Adventure,Sci-Fi,显示50次(freq)。

value_counts()可以告诉我们一个列中所有值的出现频率:

movies_df['genre'].value_counts().head(10)

输出

Action,Adventure,Sci-Fi       50
Drama                         48
Comedy,Drama,Romance          35
Comedy                        32
Drama,Romance                 31
Animation,Adventure,Comedy    27
Action,Adventure,Fantasy      27
Comedy,Drama                  27
Comedy,Romance                26
Crime,Drama,Thriller          24
Name: genre, dtype: int64

corr

corr()方法可以分析出每个列之间关系,是正相关还是负相关。

movies_df.corr()

输出

                      rank      year   runtime    rating     votes  revenue_millions  metascore
rank              1.000000 -0.261605 -0.221739 -0.219555 -0.283876         -0.271592  -0.191869
year             -0.261605  1.000000 -0.164900 -0.211219 -0.411904         -0.126790  -0.079305
runtime          -0.221739 -0.164900  1.000000  0.392214  0.407062          0.267953   0.211978
rating           -0.219555 -0.211219  0.392214  1.000000  0.511537          0.217654   0.631897
votes            -0.283876 -0.411904  0.407062  0.511537  1.000000          0.639661   0.325684
revenue_millions -0.271592 -0.126790  0.267953  0.217654  0.639661          1.000000   0.142397
metascore        -0.191869 -0.079305  0.211978  0.631897  0.325684          0.142397   1.000000

如上所示,正数表示正相关,一个上升,另一个上升;负数表示负相关,一个上升,另一个下降。1.0表示完全相关。

corr()方法对于这些列之间的相互关系分析是很有用的。



浙ICP备17015664号联系我们网站地图  
@2019 qikegu.com 版权所有,禁止转载