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] |