Python Hướng dẫn về Pandas: DataFrame, Phạm vi ngày, Sử dụng Pandas
Gấu trúc là gì Python?
Gấu trúc 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 trong Python. gấu trúc Python Thư viện cung cấp thao tác dữ liệu và hoạt động dữ liệu cho các bảng số và chuỗi thời gian. Pandas cung cấp một cách dễ dàng để tạo, thao tác và sắp xếp dữ liệu. Nó được xây dựng trên NumPy, có nghĩa là nó cần NumPy để hoạt động.
Tại sao nên sử dụng Pandas?
Các nhà khoa học dữ liệu sử dụng Pandas trong Python vì những lợi ích sau:
- Dễ dàng xử lý dữ liệu bị thiếu
- Nó sử dụng Chuỗi 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ả để cắt 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 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 chóng 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 này Python Hướng dẫn về Pandas, chúng ta sẽ học cách cài đặt Pandas trong 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 chưa được cài đặt-
Bạn có thể cài đặt Pandas bằng cách sử dụng:
- Anaconda: cài đặt conda -c gấu trúc anaconda
- In Jupyter Sổ tay :
import sys !conda install --yes --prefix {sys.prefix} pandas
Khung dữ liệu Pandas là gì?
Dữ liệu gấu trúc 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 kiểu 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à giá trị giá.
Khung dữ liệu được các nhà thống kê và những người thực hành dữ liệu khác biết đến.
Bên dưới hình ảnh khung dữ liệu Pandas:
Sê-ri là gì?
Chuỗi là 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, float và chuỗi. Nó rất 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 thể có nhiều cột. Đối với trường hợp sau, 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 bằng index. Nó giúp đặt tên cho các hàng. Độ dài phải bằng kích thước của cột
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Bên dưới, bạn tạo một chuỗi Pandas có giá trị bị thiếu cho hàng thứ ba. Lưu ý, thiếu giá trị trong Python được ghi chú là “NaN.” Bạn có thể sử dụng numpy để tạo giá trị còn 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 NaN dtype: float64
Tạo khung dữ liệu Pandas
Bây giờ trong hướng dẫn Pandas DataFrame này, chúng ta sẽ tìm hiểu cách tạo Python Khung dữ liệu gấu trúc:
Bạn có thể chuyển đổi một mảng có nhiều mảng thành khung dữ liệu gấu trúc bằng pd.Data frame(). Đ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 | Họ tên | |
---|---|---|
0 | 30 | nhà vệ sinh |
1 | 40 | Smith |
Dữ liệu phạm vi gấu trúc
Pandas có API tiện lợi để tạo phạm vi ngày. Hãy cùng học với Python Ví dụ về gấu trúc:
pd.data_range(ngày, chu kỳ, tần suất):
- 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)
Đầu ra
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)
Đầu ra
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 bằng head() hoặc tail() trước tên khung dữ liệu của gấu trúc như trong ví dụ về Pandas bên dưới:
Bước 1) Tạo một chuỗi ngẫu nhiên với cục mịch. Dãy số có 4 cột và 6 hàng
random = np.random.randn(6,4)
Bước 2) Sau đó, bạn tạo khung dữ liệu bằng pandas.
Sử dụng date_m làm chỉ mục cho khung dữ liệu. Điều đó có nghĩa là mỗi hàng sẽ có một “tên” hoặc một chỉ mục, tương ứng với một ngày.
Cuối cùng bạn đặt tên cho 4 cột 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 chức năng đầu
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 chức năng đuôi
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 thực hành tốt để có được manh mối về dữ liệu là sử dụng mô tả(). Nó cung cấp số lượng, giá trị trung bình, tiêu chuẩn, tối thiểu, tối đa và phân vị của tập dữ liệu.
df.describe()
A | B | C | D | |
---|---|---|---|---|
tính | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
nghĩa là | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
tiêu chuẩn | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
phút | -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 |
Dữ liệu lát
Điểm cuối cùng của điều này Python Hướng dẫn về Pandas 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ư 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, [[..,..]]
Cặp dấu ngoặc đầu tiên có nghĩa là bạn muốn chọn cột, cặp dấu ngoặc thứ hai cho biết bạn muốn trả về 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:
Mã bên dưới 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 phẩy biểu thị cho các hàng và sau dấu phẩy biểu thị cho 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. Mã bên dưới trả về khung dữ liệu giống 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ột bằ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ể ghép 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 ghép hai DataFrame
df_concat = pd.concat([df1,df2]) df_concat
Độ tuổi | tên | |
---|---|---|
0 | 25 | nhà vệ sinh |
1 | 30 | Smith |
2 | 50 | paul |
3 | 26 | Adam |
4 | 11 | Smith |
Thả_trùng lặp
Nếu một tập dữ liệu có thể chứa thông tin sử dụng trùng lặp thì `drop_duplicates` là một cách 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 `name.`
df_concat.drop_duplicates('name')
Độ tuổi | tên | |
---|---|---|
0 | 25 | nhà vệ sinh |
1 | 30 | Smith |
2 | 50 | paul |
3 | 26 | Adam |
Sắp xếp giá trị
Bạn có thể sắp xếp giá trị bằng Sort_values
df_concat.sort_values('Age')
Độ tuổi | tên | |
---|---|---|
4 | 11 | Smith |
0 | 25 | nhà vệ sinh |
3 | 26 | Adam |
1 | 30 | Smith |
2 | 50 | paul |
Đổi tên: thay đổi chỉ số
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"})
Tuổi_ppl | Họ | |
---|---|---|
0 | 25 | nhà vệ sinh |
1 | 30 | Smith |
2 | 50 | paul |
3 | 26 | Adam |
4 | 11 | Smith |
Tổng kết
Dưới đây là tóm tắt phương pháp hữu ích nhất cho khoa học dữ liệu với Pandas
nhập dữ liệu | đọc_csv |
---|---|
tạo chuỗi | Loạt Sách |
Tạo khung dữ liệu | Khung dữ liệu |
Tạo phạm vi ngày | phạm vi ngày |
đầu trở lại | cái đầu |
đuôi quay lại | đuôi |
Mô tả | mô tả |
lát bằng cách sử dụng tên | tên dữ liệu['tên cột'] |
Cắt lát bằng cách sử dụng hàng | data_name[0:5] |