Công thức gấu trúc excel

Đó là nó.
>>> data = {
..     'name': ['Xavier', 'Ann', 'Jana', 'Yi', 'Robin', 'Amal', 'Nori'],
..     'city': ['Mexico City', 'Toronto', 'Prague', 'Shanghai',
..              'Manchester', 'Cairo', 'Osaka'],
..     'age': [41, 28, 33, 34, 38, 31, 37],
..     'py-score': [88.0, 79.0, 81.0, 80.0, 68.0, 61.0, 84.0]
.. }

>>> row_labels = [101, 102, 103, 104, 105, 106, 107]
29 Có một biến chứa chủ đề cho Khung dữ liệu Pandas của bạn. Khung dữ liệu Pandas này trông giống như một bảng điều khiển
Tìm hiểu cách nhập dữ liệu vào Python từ nhiều nguồn khác nhau, chẳng hạn như Excel, SQL, SAS và ngay từ web

Xem chi tiết Mũi tên phải

bắt đầu khóa học

Pandas tham gia cho người dùng bảng tính

Người bắt đầu

4 giờ

2. 9K

Tìm hiểu cách tham gia các tập dữ liệu ở định dạng bảng một cách hiệu quả và hiệu quả bằng thư viện Python Pandas

Hỗ trợ các phần mở rộng tệp xls, xlsx, xlsm, xlsb, odf, ods và odt được đọc từ hệ thống tệp cục bộ hoặc URL. Hỗ trợ tùy chọn đọc một trang tính hoặc danh sách các trang tính

Tham số str, byte, ExcelFile, xlrd. Sách, đối tượng đường dẫn hoặc đối tượng dạng tệp

Mọi đường dẫn chuỗi hợp lệ đều được chấp nhận. Chuỗi có thể là một URL. Lược đồ URL hợp lệ bao gồm http, ftp, s3 và tệp. Đối với các URL của tệp, một máy chủ lưu trữ được yêu cầu. Một tệp cục bộ có thể là. file://localhost/path/to/table.xlsx

Nếu bạn muốn truyền vào một đối tượng đường dẫn, pandas chấp nhận bất kỳ os.PathLike nào

Theo đối tượng giống như tệp, chúng tôi đề cập đến các đối tượng có phương thức read(), chẳng hạn như xử lý tệp (e. g. cách được xây dựng trong hàm _______ 39 _______) hoặc

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
0

sheet_name str, int, list hoặc Không, mặc định 0

Chuỗi được sử dụng cho tên trang tính. Số nguyên được sử dụng ở các vị trí trang tính không được lập chỉ mục (các trang biểu đồ không được tính là vị trí trang tính). Danh sách các chuỗi/số nguyên được sử dụng để yêu cầu nhiều trang tính. Chỉ định Không có để nhận tất cả các trang tính

trường hợp có sẵn

  • Mặc định là

    >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    1. Tờ đầu tiên dưới dạng DataFrame

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    2. Tờ thứ 2 dưới dạng DataFrame

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    3. Tải trang tính có tên "Sheet1"

  • >>> pd.read_excel(open('tmp.xlsx', 'rb'),
    ..               sheet_name='Sheet3')  
       Unnamed: 0      Name  Value
    0           0   string1      1
    1           1   string2      2
    2           2  #Comment      3
    
    4. Tải đầu tiên, thứ hai và trang tính có tên “Sheet5” dưới dạng lệnh của DataFrame

  • Không có. Tất cả các trang tính

tiêu đề int, danh sách int, mặc định 0

Hàng (được lập chỉ mục 0) để sử dụng cho các nhãn cột của Khung dữ liệu được phân tích cú pháp. Nếu một danh sách các số nguyên được thông qua, các vị trí hàng đó sẽ được kết hợp thành một

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
5. Sử dụng Không có nếu không có tiêu đề

tên dạng mảng, mặc định Không có

Danh sách các tên cột để sử dụng. Nếu tệp không chứa hàng tiêu đề, thì bạn nên chuyển rõ ràng header=None

index_col int, danh sách int, mặc định Không có

Cột (được lập chỉ mục 0) để sử dụng làm nhãn hàng của DataFrame. Vượt qua Không nếu không có cột như vậy. Nếu một danh sách được thông qua, các cột đó sẽ được kết hợp thành một

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
5. Nếu một tập hợp con dữ liệu được chọn với
>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
7, thì index_col dựa trên tập hợp con đó

Các giá trị bị thiếu sẽ được điền tiếp để cho phép quay vòng với

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
8 cho
>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3
9. Để tránh điền trước các giá trị còn thiếu, hãy sử dụng
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
0 sau khi đọc dữ liệu thay vì
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
1

usecols str, dạng danh sách hoặc có thể gọi được, mặc định Không có
  • Nếu không, sau đó phân tích tất cả các cột

  • Nếu str, thì biểu thị danh sách các chữ cái cột Excel và phạm vi cột được phân tách bằng dấu phẩy (e. g. "MỘT. E” hoặc “A,C,E. F"). Phạm vi bao gồm cả hai bên

  • Nếu danh sách int, thì biểu thị danh sách số cột sẽ được phân tích cú pháp (0-indexed)

  • Nếu danh sách chuỗi, thì cho biết danh sách tên cột sẽ được phân tích cú pháp

  • Nếu có thể gọi được, sau đó đánh giá từng tên cột dựa vào tên đó và phân tích cú pháp cột nếu có thể gọi được trả về

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    2

Trả về một tập hợp con của các cột theo hành vi trên

bóp bool, mặc định Sai

Nếu dữ liệu được phân tích cú pháp chỉ chứa một cột thì trả về Sê-ri

Không dùng nữa kể từ phiên bản 1. 4. 0. Nối

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
3 vào lệnh gọi tới
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
4 để nén dữ liệu.

dtype Nhập tên hoặc chính tả của cột -> loại, mặc định Không có

Kiểu dữ liệu cho dữ liệu hoặc cột. e. g. {'Một'. np. float64, 'b'. np. int32} Sử dụng đối tượng để bảo toàn dữ liệu như được lưu trữ trong Excel và không diễn giải dtype. Nếu bộ chuyển đổi được chỉ định, chúng sẽ được áp dụng THAY THẾ cho chuyển đổi dtype

công cụ str, mặc định Không có

Nếu io không phải là bộ đệm hoặc đường dẫn, điều này phải được đặt để xác định io. động cơ được hỗ trợ. "xlrd", "openpyxl", "odf", "pyxlsb". tương thích động cơ

  • "xlrd" hỗ trợ các tệp Excel kiểu cũ (. xls)

  • "openpyxl" hỗ trợ các định dạng tệp Excel mới hơn

  • "odf" hỗ trợ các định dạng tệp OpenDocument (. số lẻ. ods. số lẻ)

  • "pyxlsb" hỗ trợ các tệp Excel nhị phân

Đã thay đổi trong phiên bản 1. 2. 0. Công cụ xlrd hiện chỉ hỗ trợ các tệp

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
5 kiểu cũ. Khi
>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3
6, logic sau sẽ được sử dụng để xác định động cơ.

  • Nếu

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    7 là định dạng OpenDocument (. số lẻ. ods. odt), thì odf sẽ được sử dụng

  • Mặt khác, nếu

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    7 là định dạng xls, thì
    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    9 sẽ được sử dụng

  • Mặt khác, nếu

    >>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
         0         1      2
    0  NaN      Name  Value
    1  0.0   string1      1
    2  1.0   string2      2
    3  2.0  #Comment      3
    
    7 ở định dạng xlsb, thì
    >>> pd.read_excel('tmp.xlsx', index_col=0,
    ..               dtype={'Name': str, 'Value': float})  
           Name  Value
    0   string1    1.0
    1   string2    2.0
    2  #Comment    3.0
    
    1 sẽ được sử dụng

    Mới trong phiên bản 1. 3. 0

  • Nếu không thì

    >>> pd.read_excel('tmp.xlsx', index_col=0,
    ..               dtype={'Name': str, 'Value': float})  
           Name  Value
    0   string1    1.0
    1   string2    2.0
    2  #Comment    3.0
    
    2 sẽ được sử dụng

    Thay đổi trong phiên bản 1. 3. 0

bộ chuyển đổi dict, default Không có

Dict của các hàm để chuyển đổi giá trị trong các cột nhất định. Các khóa có thể là số nguyên hoặc nhãn cột, giá trị là các hàm nhận một đối số đầu vào là nội dung ô Excel và trả về nội dung đã chuyển đổi

true_values danh sách, mặc định Không có

Các giá trị được coi là True

false_values danh sách, mặc định Không có

Các giá trị được coi là Sai

skiprows dạng danh sách, int hoặc có thể gọi, tùy chọn

Số dòng cần bỏ qua (được lập chỉ mục 0) hoặc số dòng cần bỏ qua (int) ở đầu tệp. Nếu có thể gọi được, hàm có thể gọi được sẽ được đánh giá dựa trên chỉ mục hàng, trả về True nếu hàng nên được bỏ qua và Sai nếu không. Một ví dụ về đối số có thể gọi được hợp lệ sẽ là

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
3

nrows int, mặc định Không có

Số hàng để phân tích cú pháp

na_values vô hướng, str, dạng danh sách hoặc chính tả, mặc định Không có

Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’.

keep_default_na bool, mặc định đúng

Có hay không bao gồm các giá trị NaN mặc định khi phân tích dữ liệu. Tùy thuộc vào việc na_values ​​có được truyền vào hay không, hành vi như sau

  • Nếu keep_default_na là True và na_values ​​được chỉ định, thì na_values ​​được thêm vào các giá trị NaN mặc định được sử dụng để phân tích cú pháp

  • Nếu keep_default_na là True và na_values ​​không được chỉ định, thì chỉ các giá trị NaN mặc định được sử dụng để phân tích cú pháp

  • Nếu keep_default_na là Sai và na_values ​​được chỉ định, thì chỉ các giá trị naN được chỉ định na_values ​​được sử dụng để phân tích cú pháp

  • Nếu keep_default_na là Sai và na_values ​​không được chỉ định, sẽ không có chuỗi nào được phân tích thành NaN

Lưu ý rằng nếu na_filter được truyền vào là False thì các tham số keep_default_na và na_values ​​sẽ bị bỏ qua

na_filter bool, mặc định là True

Phát hiện các điểm đánh dấu giá trị bị thiếu (chuỗi trống và giá trị của na_values). Trong dữ liệu không có bất kỳ NA nào, việc chuyển na_filter=False có thể cải thiện hiệu suất đọc một tệp lớn

dài dòng bool, mặc định Sai

Chỉ định số lượng giá trị NA được đặt trong các cột không phải là số

parse_dates bool, dạng danh sách hoặc chính tả, mặc định là Sai

Hành vi như sau

  • bool. Nếu Đúng -> thử phân tích cú pháp chỉ mục

  • danh sách int hoặc tên. e. g. Nếu [1, 2, 3] -> thử phân tích từng cột 1, 2, 3 thành một cột ngày riêng biệt

  • danh sách các danh sách. e. g. Nếu [[1, 3]] -> kết hợp cột 1 và 3 và phân tích dưới dạng một cột ngày

  • nói, e. g. {'foo'. [1, 3]} -> phân tích cột 1, 3 thành ngày và gọi kết quả 'foo'

Nếu một cột hoặc chỉ mục chứa ngày không thể phân tích cú pháp, thì toàn bộ cột hoặc chỉ mục đó sẽ được trả về không thay đổi dưới dạng kiểu dữ liệu đối tượng. Nếu bạn không muốn phân tích một số ô thành ngày, chỉ cần thay đổi loại của chúng trong Excel thành “Văn bản”. Đối với phân tích cú pháp ngày giờ không chuẩn, hãy sử dụng

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
4 sau
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
5

Ghi chú. Đường dẫn nhanh tồn tại cho các ngày có định dạng iso8601

date_parser chức năng, tùy chọn

Hàm sử dụng để chuyển đổi một chuỗi các cột chuỗi thành một mảng các thể hiện thời gian. Mặc định sử dụng

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
6 để thực hiện chuyển đổi. Pandas sẽ cố gắng gọi date_parser theo ba cách khác nhau, chuyển sang cách tiếp theo nếu xảy ra ngoại lệ. 1) Chuyển một hoặc nhiều mảng (như được định nghĩa bởi parse_dates) làm đối số;

nghìn str, mặc định Không có

Dấu phân cách hàng nghìn để phân tích các cột chuỗi thành số. Lưu ý rằng tham số này chỉ cần thiết cho các cột được lưu dưới dạng TEXT trong Excel, mọi cột số sẽ tự động được phân tích cú pháp, bất kể định dạng hiển thị

thập phân str, mặc định '. ’

Ký tự để nhận dạng là dấu thập phân để phân tích các cột chuỗi thành số. Lưu ý rằng tham số này chỉ cần thiết cho các cột được lưu dưới dạng TEXT trong Excel, mọi cột số sẽ tự động được phân tích cú pháp, bất kể định dạng hiển thị. (e. g. sử dụng ',' cho dữ liệu châu Âu)

Mới trong phiên bản 1. 4. 0

bình luận str, mặc định Không có

Nhận xét phần còn lại của dòng. Truyền một hoặc nhiều ký tự cho đối số này để biểu thị nhận xét trong tệp đầu vào. Bất kỳ dữ liệu nào giữa chuỗi nhận xét và cuối dòng hiện tại đều bị bỏ qua

skipfooter int, mặc định 0

Hàng ở cuối để bỏ qua (0-lập chỉ mục)

convert_float bool, mặc định là True

Chuyển đổi số float tích phân thành int (i. e. , 1. 0 -> 1). Nếu Sai, tất cả dữ liệu số sẽ được đọc dưới dạng số float. Excel lưu trữ tất cả các số dưới dạng số float trong nội bộ

Không dùng nữa kể từ phiên bản 1. 3. 0. convert_float sẽ bị xóa trong phiên bản sau

mangle_dupe_cols bool, mặc định là True

Các cột trùng lặp sẽ được chỉ định là 'X', 'X. 1', ...'X. N', thay vì 'X'...'X'. Truyền vào Sai sẽ khiến dữ liệu bị ghi đè nếu có tên trùng lặp trong các cột

Không dùng nữa kể từ phiên bản 1. 5. 0. Chưa triển khai và một đối số mới để chỉ định mẫu cho tên của các cột trùng lặp sẽ được thêm vào thay thế

storage_options dict, tùy chọn

Các tùy chọn bổ sung có ý nghĩa đối với một kết nối lưu trữ cụ thể, e. g. máy chủ, cổng, tên người dùng, mật khẩu, v.v. Đối với URL HTTP(S), các cặp khóa-giá trị được chuyển tiếp tới

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
7 dưới dạng tùy chọn tiêu đề. Đối với các URL khác (e. g. bắt đầu với “s3. //”, và “gcs. //”) các cặp khóa-giá trị được chuyển tiếp đến
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
8. Vui lòng xem
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0
9 và
>>> pd.read_excel('tmp.xlsx', index_col=0,
..               na_values=['string1', 'string2'])  
       Name  Value
0       NaN      1
1       NaN      2
2  #Comment      3
0 để biết thêm chi tiết và để biết thêm ví dụ về các tùy chọn lưu trữ, hãy tham khảo

Mới trong phiên bản 1. 2. 0

Trả về một DataFrame hoặc dict của DataFrames

DataFrame từ tệp được truyền trong tệp Excel. Xem ghi chú trong đối số sheet_name để biết thêm thông tin về thời điểm một lệnh của DataFrames được trả về

Xem thêm

Ghi DataFrame vào tệp Excel

Ghi DataFrame vào tệp giá trị được phân tách bằng dấu phẩy (csv)

Đọc tệp giá trị được phân tách bằng dấu phẩy (csv) vào DataFrame

Đọc bảng các dòng được định dạng có chiều rộng cố định vào DataFrame

ví dụ

Có thể đọc tệp bằng cách sử dụng tên tệp dưới dạng chuỗi hoặc đối tượng tệp đang mở

>>> pd.read_excel('tmp.xlsx', index_col=0)  
       Name  Value
0   string1      1
1   string2      2
2  #Comment      3

>>> pd.read_excel(open('tmp.xlsx', 'rb'),
..               sheet_name='Sheet3')  
   Unnamed: 0      Name  Value
0           0   string1      1
1           1   string2      2
2           2  #Comment      3

Chỉ mục và tiêu đề có thể được chỉ định thông qua các đối số index_col và tiêu đề

>>> pd.read_excel('tmp.xlsx', index_col=None, header=None)  
     0         1      2
0  NaN      Name  Value
1  0.0   string1      1
2  1.0   string2      2
3  2.0  #Comment      3

Các loại cột được suy ra nhưng có thể được chỉ định rõ ràng

>>> pd.read_excel('tmp.xlsx', index_col=0,
..               dtype={'Name': str, 'Value': float})  
       Name  Value
0   string1    1.0
1   string2    2.0
2  #Comment    3.0

Các giá trị Đúng, Sai và NA cũng như hàng nghìn dấu phân cách có giá trị mặc định nhưng cũng có thể được chỉ định rõ ràng. Cung cấp các giá trị bạn muốn dưới dạng chuỗi hoặc danh sách chuỗi