Hướng dẫn describe trong python

DataFrame là cấu trúc dữ liệu được sử dụng phổ biến nhất trong gấu trúc. Do đó, điều rất quan trọng là tìm hiểu các chi tiết cụ thể khác nhau về cách làm việc với DataFrame. Sau khi tạo DataFrame, bây giờ chúng ta hãy đi sâu vào một số phương thức để làm việc với nó.

Bắt đầu

Nhập các thư viện này : pandasmattplotlib để vẽ đồ thị , numpy.

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 
import random

Nếu bạn đang làm việc với máy tính xách tay Jupyter (hoặc iPython) và muốn hiển thị biểu đồ nội tuyến, hãy sử dụng định nghĩa này.

%matplotlib inline

Bây giờ chúng ta hãy tải một số dữ liệu CSV vào DataFrame của chúng tôi để làm việc với nó. Dữ liệu chúng tôi đã tải là Báo cáo Hạnh phúc Thế giới 2016 .

x = pd.read_csv('2016.csv')

Chi tiết khung dữ liệu

Mục lục

Thuộc tính index hiển thị nhãn chỉ mục hàng.

x = pd.read_csv('2016.csv')
print x.index

# prints
RangeIndex(start=0, stop=157, step=1)

Chỉ số là RangeIndex nếu các nhãn là số nguyên liền kề.

Cột

Lấy các cột bằng cách sử dụng thuộc tính columns.

print x.columns

# prints
Index([u'Country', u'Region', u'Happiness Rank', u'Happiness Score',
       u'Lower Confidence Interval', u'Upper Confidence Interval',
       u'Economy (GDP per Capita)', u'Family', u'Health (Life Expectancy)',
       u'Freedom', u'Trust (Government Corruption)', u'Generosity',
       u'Dystopia Residual'],
      dtype='object')

Giá trị

Mảng giá trị thô có thể được trích xuất bằng cách sử dụng  values.

print x.values

# prints
[['Denmark' 'Western Europe' 1 ..., 0.44453000000000004 0.36171 2.73939]
 ['Switzerland' 'Western Europe' 2 ..., 0.41203 0.28083 2.69463]
 ['Iceland' 'Western Europe' 3 ..., 0.14975 0.47678000000000004 2.83137]
 ..., 
 ['Togo' 'Sub-Saharan Africa' 155 ..., 0.11587 0.17517 2.1354]
 ['Syria' 'Middle East and Northern Africa' 156 ..., 0.17232999999999998
  0.48396999999999996 0.81789]
 ['Burundi' 'Sub-Saharan Africa' 157 ..., 0.09419 0.2029 2.1040400000000004]]

Hình dạng

Nhận một bộ số lượng hàng và cột của DataFrame bằng shape thuộc tính.

x.shape

# prints
(157, 13)

Kích thước

Sử dụng count() phương pháp để truy xuất số lượng phần tử (không phải NaN) trong mỗi cột. Phương pháp này bỏ qua mọi phần tử NaN trong cột.

print x.count()

# prints
Country                          157
Region                           157
Happiness Rank                   157
Happiness Score                  157
Lower Confidence Interval        157
Upper Confidence Interval        157
Economy (GDP per Capita)         157
Family                           157
Health (Life Expectancy)         157
Freedom                          157
Trust (Government Corruption)    157
Generosity                       157
Dystopia Residual                157
dtype: int64

size thuộc tính trả về tổng số phần tử (bao gồm NaN) trong DataFrame. Điều này có nghĩa là giá trị (mũi tên * ncols).

print x.size

# prints
2041

Số liệu thống kê

Lấy số liệu thống kê chi tiết của DataFrame bằng phương pháp describe(). Trả về các chi tiết khác nhau như giá trị trung bình, tối thiểu, tối đa, v.v. cho mỗi cột.

print x.describe()

# prints
       Happiness Rank  Happiness Score  Lower Confidence Interval  \
count      157.000000       157.000000                 157.000000   
mean        78.980892         5.382185                   5.282395   
std         45.466030         1.141674                   1.148043   
min          1.000000         2.905000                   2.732000   
25%         40.000000         4.404000                   4.327000   
50%         79.000000         5.314000                   5.237000   
75%        118.000000         6.269000                   6.154000   
max        157.000000         7.526000                   7.460000   

       Upper Confidence Interval  Economy (GDP per Capita)      Family  \
count                 157.000000                157.000000  157.000000   
mean                    5.481975                  0.953880    0.793621   
std                     1.136493                  0.412595    0.266706   
...

Đầu và đuôi

Các  head() phương pháp lấy năm hàng đầu tiên từ DataFrame.

x = pd.read_csv('big-data/Salaries.csv')
print x.head()

# prints
   yearID teamID lgID   playerID  salary
0    1985    ATL   NL  barkele01  870000
1    1985    ATL   NL  bedrost01  550000
2    1985    ATL   NL  benedbr01  545000
3    1985    ATL   NL   campri01  633333
4    1985    ATL   NL  ceronri01  625000

Và phương thức đuôi lấy năm hàng cuối cùng.

print x.tail()

# prints
       yearID teamID lgID   playerID    salary
26423    2016    WSN   NL  strasst01  10400000
26424    2016    WSN   NL  taylomi02    524000
26425    2016    WSN   NL  treinbl01    524900
26426    2016    WSN   NL  werthja01  21733615
26427    2016    WSN   NL  zimmery01  14000000

Các phương thức tích lũy trả về một DataFrame với hàm tích lũy thích hợp được áp dụng cho các hàng. Một số thao tác không hợp lệ đối với các cột không phải là số.

Tổng tích lũy

cumsum() (tổng tích lũy) : Giá trị của mỗi hàng được thay thế bằng tổng của tất cả các hàng trước bao gồm hàng này. Các hàng giá trị chuỗi sử dụng nối như dưới đây.

y = pd.DataFrame({'one': pd.Series(range(5)),
                 'two': pd.Series(range(5, 10)),
                 'three': pd.Series(list('abcde'))})
print 'head =>\n', y.head(), '\n'
print 'cumsum =>\n', y.cumsum(), '\n'

# prints
head =>
   one three  two
0    0     a    5
1    1     b    6
2    2     c    7
3    3     d    8
4    4     e    9 

cumsum =>
  one  three two
0   0      a   5
1   1     ab  11
2   3    abc  18
3   6   abcd  26
4  10  abcde  35

Sản phẩm tích lũy

cumprod() (c sản phẩm tích lũy) : Giá trị hàng được thay thế bằng sản phẩm của tất cả các hàng trước. Phương pháp này không áp dụng cho các hàng không số. Nếu có các hàng không phải là số trong Khung dữ liệu, bạn sẽ cần trích xuất một tập hợp con của Khung dữ liệu như được hiển thị.

print 'cumprod =>\n', y[['one', 'two']].cumprod(), '\n'

# prints
cumprod =>
   one    two
0    0      5
1    0     30
2    0    210
3    0   1680
4    0  15120

Tích lũy tối đa

cummax() (tích lũy tối đa) : Giá trị của hàng được thay thế bằng giá trị tối đa của tất cả các hàng trước cho đến nay. Trong ví dụ dưới đây, để thể hiện phương thức này, chúng tôi sử dụng phương thức này trên các hàng đảo ngược của DataFrame gốc.

print 'rev =>\n', y.iloc[::-1], '\n',
print 'cummax =>\n', y.iloc[::-1].cummax(), '\n'

# prints
rev =>
   one three  two
4    4     e    9
3    3     d    8
2    2     c    7
1    1     b    6
0    0     a    5 
cummax =>
  one three two
4   4     e   9
3   4     e   9
2   4     e   9
1   4     e   9
0   4     e   9

Tích lũy tối thiểu

cummin():  Tương tự như cummax, ngoại trừ tính toán tối thiểu các giá trị cho đến hàng này.

print 'cummin =>\n', y.cummin(), '\n'

# prints
cummin =>
  one three two
0   0     a   5
1   0     a   5
2   0     a   5
3   0     a   5
4   0     a   5

Chỉ số giá trị tối thiểu và tối đa

Sử dụng các phương thức  idxmin() và idxmax() để có được nhãn chỉ mục của các hàng chứa giá trị tối thiểu và tối đa. Chỉ áp dụng cho các cột số, vì vậy các cột không phải là số cần được lọc ra.

y = pd.DataFrame({'one': pd.Series(random.sample(xrange(100), 5), index=list('abcde')),
                 'two': pd.Series(random.sample(xrange(100), 5), index=list('abcde')),
                 'three': pd.Series(list('ABCDE'), index=list('abcde'))})
print y, '\n'
print 'idxmax =>\n', y[['one', 'two']].idxmax(), '\n'
print 'idxmin =>\n', y[['one', 'two']].idxmin(), '\n'

# prints
   one three  two
a   48     A   25
b   38     B   13
c   62     C   91
d   79     D   32
e    2     E   42 

idxmax =>
one    d
two    c
dtype: object 

idxmin =>
one    e
two    b
dtype: object

Đếm giá trị

Phương thức value_counts() trả về số lần mỗi giá trị được lặp lại trong cột. Lưu ý: đây không phải là phương pháp DataFrame; thay vào đó, nó được áp dụng trên một cột (là đối tượng Sê-ri).

x = pd.read_csv('big-data/Salaries.csv')
print 'top 10 =>\n', x.head(10), '\n'
print 'value_counts =>\n', x['yearID'].value_counts().head(10)

# prints
top 10 =>
   yearID teamID lgID   playerID  salary
0    1985    ATL   NL  barkele01  870000
1    1985    ATL   NL  bedrost01  550000
2    1985    ATL   NL  benedbr01  545000
3    1985    ATL   NL   campri01  633333
4    1985    ATL   NL  ceronri01  625000
5    1985    ATL   NL  chambch01  800000
6    1985    ATL   NL  dedmoje01  150000
7    1985    ATL   NL  forstte01  483333
8    1985    ATL   NL  garbege01  772000
9    1985    ATL   NL  harpete01  250000 

value_counts =>
1999    1006
1998     998
1995     986
1996     931
1997     925
1993     923
1994     884
1990     867
2001     860
2008     856
Name: yearID, dtype: int64

Tóm lược

Chúng tôi đã đề cập đến một số khía cạnh của DataFrame trong bài viết này. Các cách học chi tiết khác nhau của DataFrame bao gồm kích thước, hình dạng, số liệu thống kê, v.v. đã được trình bày.

7 hữu ích 0 bình luận 26k xem chia sẻ