Tech

Pandas Python là gì

Pandas là một thư viện mã nguồn mở cho phép bạn thực hiện thao tác và phân tích dữ liệu bằng Python. Thư viện Pandas Python cung cấp các thao tác dữ liệu và thao tác dữ liệu cho các bảng số và chuỗi thời gian. Gấu trúc cung cấp một cách dễ dàng để tạo, thao tác và quấn dữ liệu. Nó được xây dựng dựa trên NumPy, có nghĩa là nó cần NumPy để hoạt động.

xem bài trước : TensorBoard là gì

Tại sao sử dụng Pandas?

Các nhà khoa học dữ liệu sử dụng Pandas trong Python vì những ưu điểm sau:

  • Dễ dàng xử lý dữ liệu bị thiếu
  • Nó sử dụng Series cho cấu trúc dữ liệu một chiều và DataFrame cho cấu trúc dữ liệu đa chiều
  • Nó cung cấp một cách hiệu quả để phân chia dữ liệu
  • Nó cung cấp một cách linh hoạt để hợp nhất, nối hoặc định hình lại dữ liệu
  • Nó bao gồm một công cụ chuỗi thời gian mạnh mẽ để làm việc với

Tóm lại, Pandas là một thư viện hữu ích trong việc phân tích dữ liệu . Nó có thể được sử dụng để thực hiện thao tác và phân tích dữ liệu. Pandas cung cấp các cấu trúc dữ liệu mạnh mẽ và dễ sử dụng, cũng như các phương tiện để thực hiện nhanh các thao tác trên các cấu trúc này.

Làm thế nào để cài đặt Pandas ?

Bây giờ trong hướng dẫn Python Pandas này, chúng ta sẽ học cách cài đặt Pandas bằng Python.

Để cài đặt thư viện Pandas, vui lòng tham khảo hướng dẫn của chúng tôi Cách cài đặt TensorFlow . Pandas được cài đặt theo mặc định. Trong trường hợp từ xa, gấu trúc không được cài đặt-

Bạn có thể cài đặt Pandas bằng cách sử dụng:

  • Anaconda: conda install -c anaconda pandas
  • Trong Máy tính xách tay Jupyter:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Pandas DataFrame là gì?

Pandas DataFrame là một mảng hai chiều với cấu trúc dữ liệu được gắn nhãn có các loại cột khác nhau. DataFrame là một cách tiêu chuẩn để lưu trữ dữ liệu ở định dạng bảng, với các hàng để lưu trữ thông tin và các cột để đặt tên cho thông tin. Ví dụ: giá có thể là tên của một cột và 2,3,4 có thể là các giá trị.

Data Frame được các nhà thống kê và các nhà thực hành dữ liệu khác biết đến.

Dưới đây là hình ảnh của khung dữ liệu gấu trúc:

Series là gì?

Chuỗi là một cấu trúc dữ liệu một chiều. Nó có thể có bất kỳ cấu trúc dữ liệu nào như số nguyên, số float và chuỗi. Nó hữu ích khi bạn muốn thực hiện tính toán hoặc trả về mảng một chiều. Theo định nghĩa, một chuỗi không được có nhiều cột. Đối với trường hợp thứ hai, vui lòng sử dụng cấu trúc khung dữ liệu.

Python Pandas Series có các thông số sau:

  • Dữ liệu: có thể là danh sách, từ điển hoặc giá trị vô hướng
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Bạn có thể thêm chỉ mục với chỉ mục. Nó giúp đặt tên cho các hàng. Chiều dài phải bằng kích thước của cột

pd.Series ([1., 2., 3.], index = ['a', 'b', 'c'])

Dưới đây, bạn tạo một chuỗi Pandas với giá trị bị thiếu cho các hàng thứ ba. Lưu ý, các giá trị bị thiếu trong Python được ghi chú là “NaN.” Bạn có thể sử dụng numpy để tạo giá trị bị thiếu: np.nan một cách giả tạo

pd.Series ([1,2, np.nan])

Đầu ra

0 1,0 
1 2,0 
2 Loại NaN 
: float64

Tạo dữ liệu gấu trúc

Bây giờ trong hướng dẫn Pandas DataFrame này, chúng ta sẽ học cách tạo khung dữ liệu Python Pandas:

Bạn có thể chuyển đổi một mảng numpy thành khung dữ liệu gấu trúc bằng khung pd.Data (). Điều ngược lại cũng có thể xảy ra. Để chuyển đổi Khung dữ liệu gấu trúc thành một mảng, bạn có thể sử dụng np.array ()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Bạn cũng có thể sử dụng từ điển để tạo khung dữ liệu Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Tuổi tác Tên
0 30 John
1 40 thợ rèn

Dữ liệu phạm vi pandas

Gấu trúc có một API thuận tiện để tạo phạm vi ngày. Hãy cùng tìm hiểu với các ví dụ về Python Pandas:

pd.data_range(date,period,frequency):

  • Tham số đầu tiên là ngày bắt đầu
  • Tham số thứ hai là số khoảng thời gian (tùy chọn nếu ngày kết thúc được chỉ định)
  • Tham số cuối cùng là tần suất: ngày: ‘D,’ tháng: ‘M’ và năm: ‘Y.’
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

output

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

output

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Kiểm tra dữ liệu

Bạn có thể kiểm tra phần đầu hoặc phần đuôi của tập dữ liệu với head () hoặc tail () đứng trước tên của khung dữ liệu của gấu trúc như được hiển thị trong ví dụ Pandas bên dưới:

Bước 1) Tạo một chuỗi ngẫu nhiên với numpy. Dãy có 4 cột và 6 hàng

random = np.random.randn(6,4)

Bước 2) Sau đó, bạn tạo một khung dữ liệu bằng cách sử dụng gấu trúc.

Sử dụng date_m làm chỉ mục cho khung dữ liệu. Nó có nghĩa là mỗi hàng sẽ được đặt một “tên” hoặc một chỉ số, tương ứng với một ngày.

Cuối cùng, bạn đặt tên cho 4 cột với các cột đối số

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Bước 3) Sử dụng head function

df.head (3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0,063582 0,857751 -0.527374
2030-03-31 -0.519179 0,080984 -1,454334 1.314947

Bước 4) Sử dụng hàm  tail function

df.tail (3)
A B C D
2030-04-30 -0,685448 -0.011736 0,622172 0,104993
2030-05-31 -0.935888 -0,731787 -0,558729 0,768774
2030-06-30 1,096981 0,949180 -0.196901 -0,471556

Bước 5) Một cách tuyệt vời để có được manh mối về dữ liệu là sử dụng description (). Nó cung cấp số lượng, giá trị trung bình, std, min, max và percentile của tập dữ liệu.

df.describe ()
A B C D
đếm 6.000000 6.000000 6.000000 6.000000
nghĩa là 0,002317 0,256928 -0.151896 0,467601
std 0,908145 0,746939 0,834664 0,908910
min -0.935888 -0,731787 -1,454334 -0.527374
25% -0,643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0,034624 -0.189118 0,436883
75% 0,802237 0,732131 0,421296 1.178404
tối đa 1.139433 1.318510 0,857751 1.615822

Slice Data

Điểm cuối cùng của hướng dẫn Python Pandas này là về cách cắt khung dữ liệu gấu trúc.

Bạn có thể sử dụng tên cột để trích xuất dữ liệu trong một cột cụ thể như được hiển thị trong ví dụ về Pandas bên dưới:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Để chọn nhiều cột, bạn cần sử dụng hai lần dấu ngoặc vuông, [[.., ..]]

Cặp dấu ngoặc thứ nhất có nghĩa là bạn muốn chọn các cột, cặp dấu ngoặc thứ hai cho biết bạn muốn trả về những cột nào.

df [['A', 'B']]. 				
A B
2030-01-31 -0.168655 0,587590
2030-02-28 0,689585 0,998266
2030-03-31 0,767534 -0,940617
2030-04-30 0,557299 0,507350
2030-05-31 -1.547836 1.276558
2030-06-30 0,511551 1.572085

Bạn có thể cắt các hàng bằng:

Đoạn mã dưới đây trả về ba hàng đầu tiên

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0,587590 0,572301 -0.031827
2030-02-28 0,689585 0,998266 1.164690 0,475975
2030-03-31 0,767534 -0,940617 0,227255 -0.341532

Hàm loc được sử dụng để chọn các cột theo tên. Như thường lệ, các giá trị trước dấu hôn đứng cho các hàng và sau khi tham chiếu đến cột. Bạn cần sử dụng dấu ngoặc để chọn nhiều hơn một cột.

## Multi col 
df.loc [:, ['A', 'B']]	
A B
2030-01-31 -0.168655 0,587590
2030-02-28 0,689585 0,998266
2030-03-31 0,767534 -0,940617
2030-04-30 0,557299 0,507350
2030-05-31 -1.547836 1.276558
2030-06-30 0,511551 1.572085

Có một phương pháp khác để chọn nhiều hàng và cột trong Pandas. Bạn có thể sử dụng iloc []. Phương pháp này sử dụng chỉ mục thay vì tên cột. Đoạn mã dưới đây trả về cùng một khung dữ liệu như trên

df.iloc [:,: 2]
A B
2030-01-31 -0.168655 0,587590
2030-02-28 0,689585 0,998266
2030-03-31 0,767534 -0,940617
2030-04-30 0,557299 0,507350
2030-05-31 -1.547836 1.276558
2030-06-30 0,511551 1.572085

Thả một cột

Bạn có thể thả các cột bằng cách sử dụng pd.drop ()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0,587590 -0.031827
2030-02-28 0,998266 0,475975
2030-03-31 -0,940617 -0.341532
2030-04-30 0,507350 -0,296035
2030-05-31 1.276558 0,523017
2030-06-30 1.572085 -0,594772

Sự kết hợp

Bạn có thể nối hai DataFrame trong Pandas. Bạn có thể sử dụng pd.concat ()

Trước hết, bạn cần tạo hai DataFrames. Cho đến nay, rất tốt, bạn đã quen với việc tạo khung dữ liệu

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])

Cuối cùng, bạn nối hai DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
Tuổi tác Tên
0 25 John
1 30 thợ rèn
2 50 Paul
3 26 Adam
4 11 thợ rèn

Drop_duplicates

Nếu tập dữ liệu có thể chứa thông tin trùng lặp sử dụng, thì `drop_duplicates` sẽ dễ dàng loại trừ các hàng trùng lặp. Bạn có thể thấy rằng `df_concat` có một quan sát trùng lặp,` Smith` xuất hiện hai lần trong cột `tên. ‘

df_concat.drop_duplicates('name')
Tuổi tác Tên
0 25 John
1 30 thợ rèn
2 50 Paul
3 26 Adam

Sắp xếp các giá trị

Bạn có thể sắp xếp giá trị bằng giá trị sắp xếp

df_concat.sort_values('Age')
Tuổi tác Tên
4 11 thợ rèn
0 25 John
3 26 Adam
1 30 thợ rèn
2 50 Paul

Đổi tên: thay đổi chỉ mục

Bạn có thể sử dụng đổi tên để đổi tên một cột trong Pandas. Giá trị đầu tiên là tên cột hiện tại và giá trị thứ hai là tên cột mới.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl Họ
0 25 John
1 30 thợ rèn
2 50 Paul
3 26 Adam
4 11 thợ rèn

Tóm lược

Dưới đây là tóm tắt về phương pháp hữu ích nhất cho khoa học dữ liệu với Gấu trúc

nhập dữ liệu read_csv
tạo Series Series
Tạo khung dữ liệu Khung dữ liệu
Tạo phạm vi ngày date_range
quay trở lại đầu cái đầu
đuôi trở lại đuôi
Diễn tả diễn tả
slice using name tên dữ liệu [‘columnname’]
Slice using rows data_name [0: 5]

Blog Tiền Điện Tử

Blog tiền điện tử công thông tin tổng hợp uy tín nhất tất cả các mảng xã hội, giáo dục , công nghệ số. Với khả năng số hóa mạnh mẽ hy vọng sẽ mang lại cho quý bạn đọc những thông tin chính xác nhất 24/24
Back to top button