Hướng dẫn về Pandas Python: Khái niệm cơ bản về DataFrame

Related Articles

DataFrame là cấu trúc tài liệu được sử dụng thông dụng nhất trong gấu trúc. Do đó, điều rất quan trọng là khám phá những chi tiết cụ thể đơn cử khác nhau về cách thao tác với DataFrame. Sau khi tạo DataFrame, giờ đây tất cả chúng ta hãy đi sâu vào 1 số ít phương pháp để thao tá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 thao tá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 pháp đuôi lấy năm hàng sau cuối .

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 pháp tích góp trả về một DataFrame với hàm tích góp thích hợp được vận dụng cho những hàng. Một số thao tác không hợp lệ so với những 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ố ít góc nhìn của DataFrame trong bài viết này. Các cách học chi tiết cụ thể khác nhau của DataFrame gồm có size, hình dạng, số liệu thống kê, v.v. đã được trình diễn .

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories