Thao tác dữ liệu trong gấu trúc Python

Trong Pandas, DataFrame là cấu trúc dữ liệu hai chiều, được gắn nhãn trông giống như Bảng SQL hoặc bảng tính có các cột và hàng. Các cột của DataFrame có thể bao gồm nhiều loại dữ liệu khác nhau. Trong bài viết này, tôi sẽ giải thích thao tác cơ bản để thực hiện thao tác dữ liệu đó là cắt lát

Các hàm “loc” và “iloc” được bao gồm trong cú pháp Pandas DataFrame, ví dụ: khung dữ liệu. loc[] và khung dữ liệu. iloc[]. Cả hai hàm đều được sử dụng để truy cập hàng và/hoặc cột, với “loc” thể hiện quyền truy cập theo nhãn và “iloc” thể hiện quyền truy cập theo vị trí, i. e. chỉ số nguyên

môi trường

  • trăn3. 9
  • gấu trúc
Chuẩn bị dữ liệu

Đầu tiên và quan trọng nhất, chúng tôi cần cài đặt các gói cần thiết cho phần trình diễn sau đây của chúng tôi

Cài đặt gói

pip install pandas 
pip install pandas_datareader

Khi chúng tôi hoàn tất cài đặt gói, chúng tôi có thể bắt đầu mã hóa ngay lập tức. Nếu bạn đã đọc bất kỳ bài đăng nào trước đây của tôi, bạn sẽ thấy rằng chức năng này đã được sử dụng lại một vài lần với những sửa đổi nhỏ. Hãy xem bài đăng này nếu bạn chưa quen với lĩnh vực khoa học dữ liệu

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]

Một cách đơn giản để trích xuất dữ liệu chứng khoán từ Yahoo Finance, tôi sẽ không giải thích thêm ở đây, vì phần giải thích này có thể được tìm thấy trong các chủ đề trước đây của tôi

data = get_stock_data[['GOOG'], 14]

print[data]

Chúng tôi đang chuyển Google Stock Ticker, để truy xuất dữ liệu lịch sử của 14 ngày qua

Coded By Author [Bản quyền thuộc về Tác giả]

Vì dữ liệu đã sẵn sàng, vì vậy chúng tôi đi đến chủ đề của chúng tôi ngày hôm nay

Thao tác dữ liệu - Cắt lát

1. [] Phương pháp dấu ngoặc vuông

[] là cách sử dụng phổ biến nhất cho các nhà phát triển python hoặc Nhà khoa học dữ liệu. Dấu ngoặc vuông [] có thể được sử dụng để cắt khung dữ liệu. Hai cách để cắt khung dữ liệu

  1. Tên cột
  2. Trình tự Boolean của các cột
print[data['stock_ticker']]

Coded By Author [Bản quyền thuộc về Tác giả]

Như ví dụ trên, kiểu dữ liệu này sẽ là chuỗi vì chỉ truy cập vào một cột

Nhiều cột

print[df[['stock_ticker','Open']]]

Coded By Author [Bản quyền thuộc về Tác giả]

Lọc điều kiện

Các nhà khoa học dữ liệu luôn sử dụng tính năng lọc có điều kiện để chọn phạm vi dữ liệu mẫu phù hợp

print[data[data['Open'] > 2000]]

Coded By Author [Bản quyền thuộc về Tác giả]

Nhiều lát cắt có điều kiện

print[data[[data['Open'] > 2000] & [data['High'] < 2800]]]

Coded By Author [Bản quyền thuộc về Tác giả]

Nếu bạn đang phải đối mặt với các lỗi sau

Coded By Author [Bản quyền thuộc về Tác giả]

Vui lòng thêm [] để giải quyết vấn đề như dưới đây

[] & []

Bằng cách đó, nó sẽ ưu tiên thực hiện các phép tính logic. do đó cả hai bên sẽ chỉ trả về kiểu dữ liệu boolean

2. phương pháp iloc

Để cắt khung dữ liệu bằng cách sử dụng vị trí của các hàng và cột, hãy sử dụng kỹ thuật iloc. Có thể sử dụng phép cắt Boolean

lát hàng

________số 8

Mã hóa bởi Tác giả [Bản quyền thuộc về Tác giả]
print[data.iloc[[0]]]

Coded By Author [Bản quyền thuộc về Tác giả]

Chọn hai hàng đầu tiên

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
0

Mã hóa bởi Tác giả [Bản quyền thuộc về Tác giả]
import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
1

Coded By Author [Bản quyền thuộc về Tác giả]

Kết quả hoàn toàn giống nhau, nhưng tôi thích phương pháp đầu tiên hơn

Chọn hàng thứ ba và cho đến khi kết thúc

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
2

Coded By Author [Bản quyền thuộc về Tác giả]

Truy cập dữ liệu giữa phạm vi và dựa trên các bước

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
3

Coded By Author [Bản quyền thuộc về Tác giả]

Truy cập 5 hàng cuối cùng và cho đến khi kết thúc

Coded By Author [Bản quyền thuộc về Tác giả]

Cắt lát có điều kiện

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
4

Coded By Author [Bản quyền thuộc về Tác giả]

Mình không khuyến khích viết như trên, kể cả lambda thao tác rất nhanh, code nhìn thừa

cắt cột

Khi sử dụng phương thức iloc để cắt cột, tham số hàng cần được đặt thành. , có nghĩa là tất cả các hàng được chọn. Cắt cột được thực hiện theo cách tương tự như cắt hàng

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
5

Coded By Author [Bản quyền thuộc về Tác giả]
import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
6

Coded By Author [Bản quyền thuộc về Tác giả]

Chọn các cột chứa ký tự O

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
7

Coded By Author [Bản quyền thuộc về Tác giả]

Kết hợp các lát

Đặt tham số hàng và tham số cột cùng lúc và sử dụng iloc để cắt kết hợp

Chọn hàng 1, 3, cột 2, 4

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
8

Coded By Author [Bản quyền thuộc về Tác giả]

phương pháp định vị

Sử dụng phương thức loc để cắt khung dữ liệu theo tên hàng và cột, đồng thời hỗ trợ lập chỉ mục boolean

cắt hàng

Khi một đối số được truyền vào, chỉ các hàng được cắt

import pandas_datareader as data_reader
import pandas as pd
from datetime import datetime
from datetime import timedelta
def get_stock_data[stocktickers, days]:

start = [datetime.now[] - timedelta[days=days]].strftime['%Y-%m-%d']
end = [datetime.now[]].strftime['%Y-%m-%d']
stock = []
for stockticker in stocktickers:
data = data_reader.DataReader[stockticker, 'yahoo', start, end]
data['stock_ticker'] = stockticker
stock.append[data]

return pd.concat[stock]
9

Coded By Author [Bản quyền thuộc về Tác giả]

Vì chỉ mục của chúng tôi là một chuỗi thời gian nên chúng tôi có thể chuyển ngày giờ để lọc

Lập chỉ mục với Tìm kiếm Regex

data = get_stock_data[['GOOG'], 14]

print[data]
0

Coded By Author [Bản quyền thuộc về Tác giả]

cắt cột

Khi sử dụng phương thức loc để cắt cột, tham số hàng cần được đặt thành. , có nghĩa là tất cả các hàng được chọn. Cắt cột được thực hiện theo cách tương tự như cắt hàng

data = get_stock_data[['GOOG'], 14]

print[data]
1

Coded By Author [Bản quyền thuộc về Tác giả]

Chọn cột Mở và tất cả các cột tiếp theo

data = get_stock_data[['GOOG'], 14]

print[data]
2

Coded By Author [Bản quyền thuộc về Tác giả]

Kết hợp các lát

Đặt tham số hàng và tham số cột cùng một lúc và sử dụng phương thức loc để cắt kết hợp

data = get_stock_data[['GOOG'], 14]

print[data]
3

Coded By Author [Bản quyền thuộc về Tác giả]

Cắt theo vị trí chỉ mục và tên cột

data = get_stock_data[['GOOG'], 14]

print[data]
4

Coded By Author [Bản quyền thuộc về Tác giả]

Cắt theo tên chỉ mục và vị trí cột

data = get_stock_data[['GOOG'], 14]

print[data]
5

Mã hóa bởi tác giả [Bản quyền thuộc về tác giả]Phương pháp lọc

Phương thức lọc tương tự như phương thức loc ở chỗ nó cắt lát dựa trên tên chỉ mục và tên cột

Python được sử dụng như thế nào trong thao tác dữ liệu?

Một trong những ứng dụng phổ biến nhất của Python là khả năng tạo và quản lý cấu trúc dữ liệu một cách nhanh chóng — Chẳng hạn, Pandas cung cấp một .

Python có tốt cho thao tác dữ liệu không?

Python là một phần có giá trị trong hộp công cụ của nhà phân tích dữ liệu, vì nó được thiết kế riêng để thực hiện các tác vụ lặp đi lặp lại và thao tác dữ liệu và bất kỳ ai từng làm việc với lượng lớn dữ liệu đều biết .

Những lợi thế chính của Pandas trong thao tác dữ liệu là gì?

1. 1. Sự miêu tả dữ liệu. Pandas cung cấp các hình thức biểu diễn dữ liệu cực kỳ hợp lý. .
1. 2. Viết ít hơn và hoàn thành nhiều việc hơn. .
1. 3. Một tập hợp các tính năng phong phú. .
1. 4. Xử lý hiệu quả dữ liệu lớn. .
1. 5. Làm cho dữ liệu linh hoạt và có thể tùy chỉnh. .
1. 6. Dành cho Python

NumPy có được sử dụng để thao tác dữ liệu không?

Thao tác dữ liệu trong Python gần như đồng nghĩa với thao tác mảng NumPy . ngay cả những công cụ mới hơn như Pandas [Chương 3] cũng được xây dựng xung quanh mảng NumPy. Phần này sẽ trình bày một số ví dụ về việc sử dụng thao tác mảng NumPy để truy cập dữ liệu và các mảng con, đồng thời để phân tách, định hình lại và nối các mảng.

Chủ Đề