So sánh và xây dựng excel và python

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

Sự khác biệt giữa Excel và Python là gì?

Excel là một công cụ tuyệt vời dành cho người mới bắt đầu và là một cách nhanh chóng và dễ dàng để phân tích tập dữ liệu. Tuy nhiên, đối với kỷ nguyên hiện đại, với các tập dữ liệu lớn và các phân tích cũng như tự động hóa phức tạp hơn, Python cung cấp các công cụ, kỹ thuật và sức mạnh xử lý mà Excel, trong nhiều trường hợp, còn thiếu.

Excel hay Python tốt hơn?

Python dễ học và thành thạo hơn, không giống như Excel , bao gồm một ngôn ngữ được cá nhân hóa gọi là VBA, rất phức tạp để thành thạo và thực thi. Việc chuyển đổi từ Excel sang Python cho phép người dùng tận hưởng nhiều lợi ích khác nhau, chẳng hạn như nền tảng viết mã nguồn mở, nhiều cộng tác viên tình nguyện và thư viện miễn phí.

Bạn có thể thay thế Excel bằng Python không?

Python và Excel không có cùng mục đích . việc sử dụng nó không giới hạn trong việc quản lý dữ liệu; . Rõ ràng là cần phải học cách viết mã để sử dụng Python.

Tại sao bạn lại sử dụng Python với Excel?

Tự động hóa dễ dàng hơn . Ví dụ: nếu bạn cần chạy cùng một phân tích trên một tập hợp dữ liệu bán hàng mới mỗi tuần, thì việc thực hiện điều này trong Excel sẽ yêu cầu mở một tệp khác theo cách thủ công mỗi tuần và nhập lại công thức cũng như các yếu tố khác cần thiết cho phân tích.

Chủ Đề