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ềuDataFrame 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:

Dữ liệu gấu trúc

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]