Vì nhiều người dùng pandas tiềm năng đã quen thuộc với các chương trình bảng tính như Excel, nên trang này nhằm cung cấp một số ví dụ về cách các hoạt động bảng tính khác nhau sẽ được thực hiện bằng cách sử dụng pandas. Trang này sẽ sử dụng thuật ngữ và liên kết đến tài liệu dành cho Excel, nhưng nhiều phần sẽ giống/tương tự trong Google Trang tính, LibreOffice Calc, Apple Numbers và phần mềm bảng tính tương thích với Excel khác
Nếu bạn chưa quen với pandas, trước tiên bạn có thể muốn đọc qua 10 Minutes to pandas để làm quen với thư viện.
Theo thông lệ, chúng tôi nhập gấu trúc và NumPy như sau
In [1]: import pandas as pd In [2]: import numpy as np
Cấu trúc dữ liệu#
Dịch thuật ngữ chung#
gấu trúc
Excel
df.sort_values["col1", inplace=True]4
bảng tính
df.sort_values["col1", inplace=True]5
cột
df.sort_values["col1", inplace=True]6
tiêu đề hàng
hàng ngang
hàng ngang
df.sort_values["col1", inplace=True]7
ô trống
df.sort_values["col1", inplace=True]
4#
Một
df.sort_values["col1", inplace=True]4 trong pandas tương tự như một trang tính Excel. Trong khi sổ làm việc Excel có thể chứa nhiều trang tính, gấu trúc
df.sort_values["col1", inplace=True]4 tồn tại độc lập
df.sort_values["col1", inplace=True]
5#
Một
df.sort_values["col1", inplace=True]5 là cấu trúc dữ liệu đại diện cho một cột của một
df.sort_values["col1", inplace=True]4. Làm việc với
df.sort_values["col1", inplace=True]5 tương tự như tham chiếu một cột của bảng tính
df.sort_values["col1", inplace=True]
6#
Mỗi
df.sort_values["col1", inplace=True]4 và
df.sort_values["col1", inplace=True]5 có một
df.sort_values["col1", inplace=True]6, là các nhãn trên các hàng dữ liệu. Trong pandas, nếu không có chỉ mục nào được chỉ định, thì _____169 được sử dụng theo mặc định [hàng đầu tiên = 0, hàng thứ hai = 1, v.v.], tương tự như tiêu đề/số hàng trong bảng tính
Trong gấu trúc, các chỉ mục có thể được đặt thành một [hoặc nhiều] giá trị duy nhất, giống như có một cột được sử dụng làm định danh hàng trong trang tính. Không giống như hầu hết các bảng tính, các giá trị
df.sort_values["col1", inplace=True]6 này thực sự có thể được sử dụng để tham chiếu các hàng. [Lưu ý rằng điều này có thể được thực hiện trong Excel với tham chiếu có cấu trúc. ] Ví dụ: trong bảng tính, bạn sẽ tham chiếu hàng đầu tiên là
df.sort_values["col1", inplace=True]81, trong khi ở gấu trúc, bạn có thể sử dụng
df.sort_values["col1", inplace=True]82
Giá trị chỉ mục cũng cố định, vì vậy nếu bạn sắp xếp lại thứ tự các hàng trong
df.sort_values["col1", inplace=True]4, nhãn cho một hàng cụ thể sẽ không thay đổi
Xem tài liệu lập chỉ mục để biết thêm thông tin về cách sử dụng
df.sort_values["col1", inplace=True]6 hiệu quả.
Bản sao so với. hoạt động tại chỗ#
Hầu hết các hoạt động của gấu trúc đều trả về các bản sao của
df.sort_values["col1", inplace=True]5/
df.sort_values["col1", inplace=True]4. Để thực hiện các thay đổi "dính", bạn sẽ cần gán cho một biến mới
df.sort_values["col1", inplace=True]4
hoặc ghi đè lên bản gốc
df.sort_values["col1", inplace=True]5
Ghi chú
Bạn sẽ thấy đối số từ khóa
df.sort_values["col1", inplace=True]87 có sẵn cho một số phương pháp
df.sort_values["col1", inplace=True]
Việc sử dụng nó không được khuyến khích. Thông tin thêm.
Nhập/xuất dữ liệu#
Xây dựng DataFrame từ các giá trị #
Trong một bảng tính, các giá trị có thể được nhập trực tiếp vào các ô
Một pandas
df.sort_values["col1", inplace=True]4 có thể được xây dựng theo nhiều cách khác nhau, nhưng đối với một số lượng nhỏ giá trị, thường thuận tiện khi chỉ định nó dưới dạng từ điển Python, trong đó các khóa là tên cột và giá trị là dữ liệu
df.sort_values["col1", inplace=True]6
Đọc dữ liệu bên ngoài#
Cả Excel và pandas đều có thể nhập dữ liệu từ nhiều nguồn ở nhiều định dạng khác nhau.
CSV#
Hãy tải và hiển thị tập dữ liệu mẹo từ các bài kiểm tra gấu trúc, đây là tệp CSV. Trong Excel, bạn sẽ tải xuống và sau đó mở CSV. Trong pandas, bạn chuyển URL hoặc đường dẫn cục bộ của tệp CSV tới
df.sort_values["col1", inplace=True]89
df.sort_values["col1", inplace=True]8
Giống như Trình hướng dẫn nhập văn bản của Excel,
df.sort_values["col1", inplace=True]20 có thể lấy một số tham số để chỉ định cách phân tích dữ liệu. Ví dụ: nếu dữ liệu thay vào đó được phân cách bằng tab và không có tên cột, thì lệnh pandas sẽ là
df.sort_values["col1", inplace=True]2
Tệp Excel #
Excel mở nhiều định dạng tệp Excel khác nhau bằng cách bấm đúp vào chúng hoặc sử dụng menu Mở. Trong pandas, bạn sử dụng các phương pháp đặc biệt để đọc và ghi từ/đến tệp Excel .
Trước tiên hãy tạo một tệp Excel mới dựa trên khung dữ liệu
df.sort_values["col1", inplace=True]21 trong ví dụ trên.
df.sort_values["col1", inplace=True]5
Nếu sau đó bạn muốn truy cập dữ liệu trong tệp
df.sort_values["col1", inplace=True]22, bạn có thể đọc nó vào mô-đun của mình bằng cách sử dụng
df.sort_values["col1", inplace=True]7
Bạn vừa đọc trong tệp Excel bằng pandas
Đầu ra giới hạn #
Các chương trình bảng tính sẽ chỉ hiển thị một màn hình dữ liệu tại một thời điểm và sau đó cho phép bạn cuộn, do đó thực sự không cần phải giới hạn đầu ra. Trong pandas, bạn sẽ cần suy nghĩ nhiều hơn một chút về việc kiểm soát cách hiển thị các
df.sort_values["col1", inplace=True]4 của mình
Theo mặc định, gấu trúc sẽ cắt bớt đầu ra của các
df.sort_values["col1", inplace=True]4 lớn để hiển thị hàng đầu tiên và hàng cuối cùng. Điều này có thể bị ghi đè bằng cách thay đổi tùy chọn gấu trúc hoặc sử dụng
df.sort_values["col1", inplace=True]25 hoặc
df.sort_values["col1", inplace=True]26.
df.sort_values["col1", inplace=True]2
Đang xuất dữ liệu#
Theo mặc định, phần mềm bảng tính trên máy tính để bàn sẽ lưu ở định dạng tệp tương ứng [
df.sort_values["col1", inplace=True]27,
df.sort_values["col1", inplace=True]28, v.v.]. Tuy nhiên, bạn có thể lưu vào các định dạng tệp khác
gấu trúc có thể tạo tệp Excel , CSV hoặc . .
Hoạt động dữ liệu #
Thao tác trên cột#
Trong bảng tính, các công thức thường được tạo trong các ô riêng lẻ và sau đó được kéo vào các ô khác để tính toán chúng cho các cột khác. Trong gấu trúc, bạn có thể trực tiếp thực hiện các thao tác trên toàn bộ cột
gấu trúc cung cấp các hoạt động vector hóa bằng cách chỉ định riêng lẻ
df.sort_values["col1", inplace=True]5 trong
df.sort_values["col1", inplace=True]4. Các cột mới có thể được chỉ định theo cùng một cách. Phương pháp
df.sort_values["col1", inplace=True]51 loại bỏ một cột từ
df.sort_values["col1", inplace=True]4
df.sort_values["col1", inplace=True]40
Lưu ý rằng chúng ta không cần phải yêu cầu nó thực hiện phép trừ đó theo từng ô — gấu trúc xử lý việc đó cho chúng ta. Xem cách tạo các cột mới bắt nguồn từ các cột hiện có .
lọc #
Trong Excel, việc lọc được thực hiện thông qua menu đồ họa
DataFrames có thể được lọc theo nhiều cách; . boolean indexing.
df.sort_values["col1", inplace=True]41
Câu lệnh trên chỉ đơn giản là chuyển một
df.sort_values["col1", inplace=True]5 trong số các đối tượng
df.sort_values["col1", inplace=True]54/
df.sort_values["col1", inplace=True]55 vào DataFrame, trả về tất cả các hàng có
df.sort_values["col1", inplace=True]54
df.sort_values["col1", inplace=True]42
Nếu/thì logic#
Giả sử chúng ta muốn tạo một cột
df.sort_values["col1", inplace=True]57 với các giá trị của
df.sort_values["col1", inplace=True]58 và
df.sort_values["col1", inplace=True]59, dựa trên việc
df.sort_values["col1", inplace=True]70 ít hơn hay nhiều hơn $10
Trong bảng tính, so sánh logic có thể được thực hiện với các công thức có điều kiện. Chúng tôi sẽ sử dụng công thức của
df.sort_values["col1", inplace=True]71, được kéo đến tất cả các ô trong cột
df.sort_values["col1", inplace=True]57 mới
Hoạt động tương tự ở gấu trúc có thể được thực hiện bằng phương pháp
df.sort_values["col1", inplace=True]73 từ
df.sort_values["col1", inplace=True]74
df.sort_values["col1", inplace=True]43
Chức năng ngày #
Phần này sẽ đề cập đến "ngày", nhưng dấu thời gian được xử lý tương tự
Chúng ta có thể nghĩ về chức năng ngày trong hai phần. phân tích cú pháp và đầu ra. Trong bảng tính, giá trị ngày thường được phân tích cú pháp tự động, mặc dù có hàm DATEVALUE nếu bạn cần. Trong pandas, bạn cần chuyển đổi rõ ràng văn bản thuần túy thành đối tượng ngày giờ, trong khi đọc từ CSV hoặc khi đã vào . .
Sau khi được phân tích cú pháp, bảng tính hiển thị ngày ở định dạng mặc định, mặc dù định dạng có thể thay đổi. Trong pandas, bạn thường muốn giữ ngày tháng dưới dạng đối tượng
df.sort_values["col1", inplace=True]75 trong khi thực hiện phép tính với chúng. Việc xuất các phần của ngày tháng [chẳng hạn như năm] được thực hiện thông qua các hàm ngày tháng trong bảng tính và thuộc tính ngày giờ trong pandas.
Đưa ra
df.sort_values["col1", inplace=True]76 và
df.sort_values["col1", inplace=True]77 trong cột
df.sort_values["col1", inplace=True]78 và
df.sort_values["col1", inplace=True]79 của bảng tính, bạn có thể có các công thức này
cột
công thức
df.sort_values["col1", inplace=True]20
df.sort_values["col1", inplace=True]21
df.sort_values["col1", inplace=True]22
df.sort_values["col1", inplace=True]23
df.sort_values["col1", inplace=True]24
df.sort_values["col1", inplace=True]25
df.sort_values["col1", inplace=True]26
df.sort_values["col1", inplace=True]27
Các hoạt động gấu trúc tương đương được hiển thị bên dưới
df.sort_values["col1", inplace=True]44
Xem Chức năng ngày/chuỗi thời gian để biết thêm chi tiết.
Lựa chọn các cột #
Trong bảng tính, bạn có thể chọn các cột bạn muốn theo
Ẩn cột
Xóa cột
Tham chiếu một phạm vi từ một trang tính sang một trang tính khác
Vì các cột bảng tính thường được đặt tên trong hàng tiêu đề, nên việc đổi tên cột chỉ đơn giản là thay đổi văn bản trong ô đầu tiên đó
Các hoạt động tương tự được thể hiện trong gấu trúc bên dưới
Giữ các cột nhất định #
df.sort_values["col1", inplace=True]45
Thả một cột #
df.sort_values["col1", inplace=True]46
Đổi tên cột#
df.sort_values["col1", inplace=True]47
Sắp xếp theo giá trị#
Sắp xếp trong bảng tính được thực hiện thông qua hộp thoại sắp xếp
pandas có một phương thức
df.sort_values["col1", inplace=True]28, lấy một danh sách các cột để sắp xếp theo
df.sort_values["col1", inplace=True]48
Xử lý chuỗi#
Tìm độ dài của chuỗi #
Trong bảng tính, có thể tìm số ký tự trong văn bản bằng hàm LEN. Điều này có thể được sử dụng với chức năng TRIM để loại bỏ khoảng trắng thừa
df.sort_values["col1", inplace=True]49
Bạn có thể tìm độ dài của một chuỗi ký tự với
df.sort_values["col1", inplace=True]29. Trong Python 3, tất cả các chuỗi đều là chuỗi Unicode.
df.sort_values["col1", inplace=True]400 bao gồm các khoảng trống ở cuối. Sử dụng
df.sort_values["col1", inplace=True]400 và
df.sort_values["col1", inplace=True]402 để loại trừ các khoảng trống ở cuối
df.sort_values["col1", inplace=True]50
Lưu ý rằng điều này sẽ vẫn bao gồm nhiều khoảng trắng trong chuỗi, vì vậy không tương đương 100%
Tìm vị trí của chuỗi con #
Hàm bảng tính TÌM trả về vị trí của một chuỗi con, với ký tự đầu tiên là
df.sort_values["col1", inplace=True]403
Bạn có thể tìm vị trí của một ký tự trong một cột chuỗi bằng phương thức
df.sort_values["col1", inplace=True]404.
df.sort_values["col1", inplace=True]405 tìm kiếm vị trí đầu tiên của chuỗi con. Nếu chuỗi con được tìm thấy, phương thức sẽ trả về vị trí của nó. Nếu không tìm thấy, nó trả về
df.sort_values["col1", inplace=True]406. Hãy nhớ rằng các chỉ mục Python không dựa trên
df.sort_values["col1", inplace=True]51
Trích xuất chuỗi con theo vị trí #
Bảng tính có công thức MID để trích xuất một chuỗi con từ một vị trí nhất định. Để có được ký tự đầu tiên
df.sort_values["col1", inplace=True]52
Với gấu trúc, bạn có thể sử dụng ký hiệu
df.sort_values["col1", inplace=True]407 để trích xuất chuỗi con từ chuỗi theo vị trí vị trí. Hãy nhớ rằng các chỉ mục Python không dựa trên
df.sort_values["col1", inplace=True]53
Trích xuất từ thứ n#
Trong Excel, bạn có thể sử dụng Trình hướng dẫn chuyển văn bản thành cột để tách văn bản và truy xuất một cột cụ thể. [Lưu ý rằng bạn cũng có thể làm như vậy thông qua một công thức. ]
Cách đơn giản nhất để trích xuất các từ trong gấu trúc là chia chuỗi theo khoảng trắng, sau đó tham chiếu từ theo chỉ mục. Lưu ý rằng có nhiều cách tiếp cận mạnh mẽ hơn nếu bạn cần chúng
df.sort_values["col1", inplace=True]54
Thay đổi trường hợp #
Bảng tính cung cấp các hàm UPPER, LOWER và PROPER để chuyển đổi văn bản thành chữ hoa, chữ thường và chữ hoa tiêu đề tương ứng
Các phương pháp gấu trúc tương đương là
df.sort_values["col1", inplace=True]408,
df.sort_values["col1", inplace=True]409 và
df.sort_values["col1", inplace=True]410
df.sort_values["col1", inplace=True]55
hợp nhất #
Các bảng sau đây sẽ được sử dụng trong các ví dụ hợp nhất
df.sort_values["col1", inplace=True]56
Trong Excel, việc hợp nhất các bảng có thể được thực hiện thông qua hàm VLOOKUP
pandas DataFrames có phương thức
df.sort_values["col1", inplace=True]411, cung cấp chức năng tương tự. Dữ liệu không cần phải được sắp xếp trước thời hạn và các loại tham gia khác nhau được thực hiện thông qua từ khóa
df.sort_values["col1", inplace=True]412
df.sort_values["col1", inplace=True]57
df.sort_values["col1", inplace=True]413 có một số lợi thế so với
df.sort_values["col1", inplace=True]414
Giá trị tra cứu không cần phải là cột đầu tiên của bảng tra cứu
Nếu nhiều hàng được khớp, sẽ có một hàng cho mỗi trận đấu, thay vì chỉ hàng đầu tiên
Nó sẽ bao gồm tất cả các cột từ bảng tra cứu, thay vì chỉ một cột được chỉ định
Nó hỗ trợ các thao tác nối phức tạp hơn
Những ý kiến khác#
Xử lý điền #
Tạo một dãy số theo mẫu đã đặt trong một nhóm ô nhất định. Trong bảng tính, điều này sẽ được thực hiện bằng cách shift+kéo sau khi nhập số đầu tiên hoặc bằng cách nhập hai hoặc ba giá trị đầu tiên rồi kéo
Điều này có thể đạt được bằng cách tạo một chuỗi và gán nó cho các ô mong muốn
df.sort_values["col1", inplace=True]58
Thả bản sao #
Excel có chức năng tích hợp để loại bỏ các giá trị trùng lặp. Điều này được hỗ trợ trong pandas thông qua
df.sort_values["col1", inplace=True]415
df.sort_values["col1", inplace=True]59
Bảng tổng hợp #
PivotTable từ bảng tính có thể được sao chép trong gấu trúc thông qua Định hình lại và bảng tổng hợp . Sử dụng lại bộ dữ liệu
df.sort_values["col1", inplace=True]21, hãy tìm tiền thưởng trung bình theo quy mô của bữa tiệc và giới tính của người phục vụ.
Trong Excel, chúng tôi sử dụng cấu hình sau cho PivotTable
Tương đương ở gấu trúc
df.sort_values["col1", inplace=True]0
Thêm một hàng #
Giả sử chúng ta đang sử dụng một
df.sort_values["col1", inplace=True]69 [được đánh số là
df.sort_values["col1", inplace=True]418,
df.sort_values["col1", inplace=True]403, v.v. ], chúng ta có thể sử dụng
df.sort_values["col1", inplace=True]420 để thêm một hàng vào cuối của một
df.sort_values["col1", inplace=True]4