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 : pandas,  mattplotlib để 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

Và 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ẻ

Chủ đề