Hướng dẫn skip empty rows excel pandas - bỏ qua hàng trống excel gấu trúc

Tôi có một khung dữ liệu như dưới đây.

    id       date       name    branch  position
0   20323   2019-02-03  Bete    H       IE
1   20326   2019-02-03  Veso    R       MGR
2   22357   2019-02-03  Nom     D       IE
3   20935   2019-02-06  Dow     A       MGR
4   NaN     NaT         NaN     NaN     NaN
5   20432   2019-02-07  Tem     W       MGR
6   23999   NaT         Bonny   NaN     NaN
7   21102   2019-02-07  Xi      A       IE

Tôi chỉ muốn xóa các hàng trống [ví dụ: chỉ mục 4].

Tôi đã cố gắng đọc tệp dữ liệu bằng df = pd.read_excel["../20191210/test.xlsx", skip_blank_lines=True].

Nhưng không có gì khác với kết quả của df = pd.read_excel["..20191210/test.xlsx"]

Dưới đây là liên kết tải xuống tệp.

Bất cứ ai có thể giúp tôi với điều này?

Hỏi ngày 11 tháng 12 năm 2019 lúc 5:05Dec 11, 2019 at 5:05

xcenxcenxcen

6422 Huy hiệu vàng6 Huy hiệu bạc19 Huy hiệu đồng2 gold badges6 silver badges19 bronze badges

3

Đây là một ví dụ với df.dropna [How = 'all']: Không có nan nếu tất cả các hàng có nan

import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]

Đã trả lời ngày 11 tháng 12 năm 2019 lúc 5:21Dec 11, 2019 at 5:21

GiovanisalazargiovanisalazarGiovaniSalazar

1.8992 huy hiệu vàng7 Huy hiệu bạc12 Huy hiệu đồng2 gold badges7 silver badges12 bronze badges

5

Hãy thử df = df.dropna[] sau khi đọc tệp Excel.

Đã trả lời ngày 11 tháng 12 năm 2019 lúc 5:18Dec 11, 2019 at 5:18

2

Bình luận

Yêu cầu tính năng của bạn có liên quan đến một vấn đề không?

Đọc Stack Overflow, đã có một số bài viết cố gắng bỏ qua các dòng trống khi đọc [Bài 1, Bài 2, Bài 3, ...]. Giải pháp đề xuất hoạt động cho gấu trúc v
In pandas 1.1.4 and 1.2: TypeError: read_excel[] got an unexpected keyword argument 'skip_blank_lines' and no mention in the documentation posted above.

Mô tả giải pháp bạn muốn

Gấu trúc read_excel và/hoặc ExcelFile sẽ lấy lại đối số và chức năng này

Jankawis đã thay đổi tiêu đề Thêm trở lại Skip_Blank_lines Thêm lại Skip_Blank_lines vào Read_Excel trong Pandas 1.1.4

Ngày 14 tháng 2 năm 2021

Jankawis đã thay đổi tiêu đề Thêm trở lại Skip_Blank_Lines thành Read_Excel trong Pandas 1.1.4 Thêm Back Skip_Blank_Lines vào Read_Excel trong Pandas V> 1.1.4

Ngày 14 tháng 2 năm 2021

Chúng tôi không cần phải thêm lại trong các đối số từ khóa - chỉ có thể thêm tham số này vào read_excel và tài liệu

Nếu bất cứ ai muốn thực hiện điều này, bản sửa lỗi sẽ là thêm SKIP_BLANK_LINE vào chữ ký read_excel và cuộc gọi io.parse. Xin lưu ý rằng bạn cũng sẽ cần thêm lại DocString [xem Biến _read_excel_doc] trong Tệp ____10.

Điều này sẽ yêu cầu một bài kiểm tra mới, hoặc là đủ để TextParParser cơ bản đã có các bài kiểm tra cho SKIP_BLANK_LINES?

@ahawryluk Cảm ơn vì đã tiếp tục điều này. Tôi nghĩ rằng bạn cần thêm một thử nghiệm cụ thể cho Excel tại

import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
1 với tệp Excel mới với các dòng trống.

Tôi đã tìm ra cách vượt qua

import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
2 [mặc định đúng] từ read_excel xuống
import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
4, nhưng tôi đã rất ngạc nhiên khi phát hiện ra rằng nó chỉ thay đổi kết quả được trả lại nếu bảng tính có chính xác một cột. Nếu bảng tính có nhiều cột, một hàng trống được chuyển cho TextParser là ['', '', ...] và TextParser sẽ không bỏ qua nó. Hành vi của TextParser có ý nghĩa bởi vì một dòng trống trong CSV [
import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
5] rõ ràng là một điều khác so với một dòng các ô trống [
import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
6].

Chúng ta có nên tiến hành theo kế hoạch, khôi phục

  1. Tiến hành theo kế hoạch nhưng thay đổi mặc định read_excel thành
    import pandas as pd
    import numpy as np
    
    dict = {'Col1':[100, 90, np.nan, 95],
            'Col2': [30, 45, np.nan, np.nan],
            'Col3':[np.nan, 40,np.nan, 98]}
    
    df = pd.DataFrame[dict]
    # With NaN
    print[df]
    
    # Without NaN
    df = df.dropna[]
    print [df]
    
    # Without NaN if all rows have NaN
    df = df.dropna[how='all']
    print [df]
    
    7 để loại bỏ sự ngạc nhiên của các tấm cột đơn và nhiều cột hoạt động khác nhau.
  2. Chuyển
    import pandas as pd
    import numpy as np
    
    dict = {'Col1':[100, 90, np.nan, 95],
            'Col2': [30, 45, np.nan, np.nan],
            'Col3':[np.nan, 40,np.nan, 98]}
    
    df = pd.DataFrame[dict]
    # With NaN
    print[df]
    
    # Without NaN
    df = df.dropna[]
    print [df]
    
    # Without NaN if all rows have NaN
    df = df.dropna[how='all']
    print [df]
    
    7 cho TextParser nhưng không để hiển thị tùy chọn từ read_excel. Trong trường hợp này, lý do sẽ là bảng tính được cấu trúc xung quanh các vị trí tế bào cụ thể và read_excel không bao giờ nên che giấu điều đó. Người dùng luôn có thể giảm_NA sau khi thực tế.
  3. Thay đổi mặc định thành
    import pandas as pd
    import numpy as np
    
    dict = {'Col1':[100, 90, np.nan, 95],
            'Col2': [30, 45, np.nan, np.nan],
            'Col3':[np.nan, 40,np.nan, 98]}
    
    df = pd.DataFrame[dict]
    # With NaN
    print[df]
    
    # Without NaN
    df = df.dropna[]
    print [df]
    
    # Without NaN if all rows have NaN
    df = df.dropna[how='all']
    print [df]
    
    7 nhưng thay đổi baseexcelreader để đối số cũng hoạt động cho bảng tính nhiều cột.

Tôi sẽ bỏ phiếu cho 2. Nhưng tôi không thực sự chịu trách nhiệm :].

Tôi càng nghĩ về nó, tôi cũng nghiêng về tùy chọn 2. Hành vi hiện tại [read_excel thả các ô trống từ bảng tính cột đơn] có vẻ giống như một lỗi hơn là một tính năng và hầu hết các bài đăng mà @Jankawis cung cấp đang tìm kiếm một cách để tắt nó đi.

@Willayd Bạn nghĩ gì về tùy chọn này? Nó không thực sự là một sự phản đối, nhưng nó sẽ yêu cầu một điều tương lai?

Là sắc thái mà bạn đang thấy với một cột duy nhất cho Excel hoặc nó cũng được nhìn thấy trong trình phân tích cú pháp CSV?

Đã gửi từ iphone của tôi

Vào ngày 24 tháng 2 năm 2021, lúc 11:20 sáng, Andrew Hawyrluk ***@***.***> đã viết: Tôi càng nghĩ về nó, tôi cũng nghiêng về tùy chọn 2. Hành vi hiện tại [Read_Excel giảm các ô trống Từ bảng tính một cột] có vẻ giống như một lỗi hơn là một tính năng và hầu hết các bài đăng mà @Jankawis cung cấp đang tìm cách để tắt nó. @Willayd Bạn nghĩ gì về tùy chọn này? Nó không thực sự là một sự phản đối, nhưng nó sẽ yêu cầu một điều tương lai? - Bạn đang nhận được điều này bởi vì bạn đã được đề cập. Trả lời email này trực tiếp, xem nó trên GitHub hoặc hủy đăng ký.

Nếu CSV được tạo bởi gấu trúc [hoặc bất kỳ thư viện nào khác phụ thuộc vào mô -đun thư viện tiêu chuẩn

import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
0], thì sắc thái này dành riêng cho Excel. Python
import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
0 viết một hàng trống đơn yếu tố đơn là
import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
2 vì vậy read_csv sẽ không bỏ qua nó ngay cả khi
import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
3. Ngược lại, một hàng trống đơn yếu tố từ bảng tính được chuyển cho TextParser là [] và sẽ bị bỏ qua.

Vì vậy, một cột dữ liệu đơn với các phần tử trống có thể được lưu vào CSV với index = false và tải lại nguyên vẹn. Lưu cùng một dữ liệu để vượt trội với index = false và tải lại sẽ giảm tất cả các hàng trống.

Python 3.5 có lỗi trong

import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
0 đại diện cho các hàng trống đơn yếu tố đơn là
import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
5, vì vậy dữ liệu CSV cột đơn sẽ không đi khứ hồi cho phiên bản đó. Xem #12443, #18676 và Python Bug 32255. Có lẽ có các CSV khác trong tự nhiên đại diện cho các hàng trống đơn yếu tố là
import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
5 nhưng tôi cho rằng ít nhất nên nhất quán trong nội bộ.

Hmm xin lỗi nhưng tôi nghĩ rằng tôi đang thiếu bức tranh lớn về cách tất cả những điều này liên quan. Vì vậy, lý tưởng vì chúng tôi có mặc định là

import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
3 trong CSV, tôi nghĩ rằng chúng ta nên phấn đấu cho cùng mặc định ở phía Excel. Nó có thể hữu ích nếu bạn đã cố gắng điều đó chỉ để thúc đẩy những gì bạn có với trường hợp thử nghiệm thất bại và chúng tôi có thể gỡ lỗi cùng nhau

Yêu cầu kéo giải quyết vấn đề này và các bài kiểm tra mới vượt qua, vì vậy nó chắc chắn là một cải tiến. Ai đó có thể đọc tài liệu mới và nghĩ, "Đó là một lựa chọn kỳ lạ", nhưng ít nhất họ có thể tắt nó ngay bây giờ.

#40214 Đã sửa lỗi hành vi lỗi của read_excel đôi khi bỏ các đường trống và đôi khi không. Tôi -1 về việc hiển thị đối số

import pandas as pd
import numpy as np

dict = {'Col1':[100, 90, np.nan, 95],
        'Col2': [30, 45, np.nan, np.nan],
        'Col3':[np.nan, 40,np.nan, 98]}

df = pd.DataFrame[dict]
# With NaN
print[df]

# Without NaN
df = df.dropna[]
print [df]

# Without NaN if all rows have NaN
df = df.dropna[how='all']
print [df]
2 cho người dùng. Nó sẽ cần sự triển khai của riêng nó cho Excel [chuyển qua trình phân tích cú pháp là không đủ] và
import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]
9 hoàn thành tương tự. Với các tệp CSV, người ta không thể phân biệt giữa một dòng thực sự trống và df = pd.read_excel["../20191210/test.xlsx", skip_blank_lines=True]0. Không tồn tại cho các tệp excel

Có một công việc xung quanh trong 1.1 hoặc 1.2 để nhận SKIP_BLANK_LINES = chức năng sai?

Trong cả 1.1 và 1.2, tôi tin rằng các dòng trống sẽ không bị bỏ qua trừ khi một cột duy nhất được đọc. Khi một cột được đọc, hiện tại không có cách nào để không bỏ qua các dòng trống. Đó có phải là những gì bạn đang trải qua @jmathew?

Vâng, nó chỉ có một cột.

Cảm ơn @jmathew. Tôi đã không thể tìm thấy bất kỳ cách giải quyết nào cho 1.1/1.2, có vẻ như các dòng trống được gỡ bỏ trước khi bất kỳ xử lý nào khác được thực hiện bởi trình phân tích cú pháp.

Tùy chọn khả thi duy nhất tôi thấy không bỏ qua các dòng trống trong 1.1./1.2 sẽ là Backport #40214. Vì hành vi lỗi không phải là một hồi quy [mặc dù thực tế này rất phức tạp khi có khả năng giải quyết cho hành vi lỗi này bị loại bỏ trong 1.1], tôi không nghĩ rằng nên thực hiện backport trong trường hợp này. Ý kiến ​​này cũng một phần dựa trên suy nghĩ [hy vọng?] Rằng số lượng người dùng bị ảnh hưởng là nhỏ và mức độ nghiêm trọng của tác động đối với những người dùng đó cũng nhỏ.

Nếu bạn có bất kỳ suy nghĩ về điều này - xin vui lòng chia sẻ.

Cảm ơn vì đã tìm kiếm @rhshadrach

Tôi chỉ cần một giải pháp để giúp tôi vượt qua cho đến khi 1.3 được phát hành. Vì vậy, tôi ổn với quyết định không ủng hộ.

Tắt đỉnh đầu của tôi, sửa chữa có vẻ thực sự đơn giản. Monkey có vá lỗi từ mã của tôi khi chạy thời gian chạy không? Tôi không biết làm thế nào để làm điều đó trong Python nhưng có vẻ như nó sẽ phù hợp với kịch bản này.

Nó đang chặn cho trường hợp sử dụng của tôi vì tôi cần biết vị trí ô ban đầu cho mỗi giá trị. Tuy nhiên, trường hợp xấu nhất là tôi mở lại bảng tính trong một trình đọc khác và dịch vị trí khung dữ liệu thành bản gốc cho tình huống hẹp này.

Chúng tôi đã kết thúc việc xây dựng 1.1 với #40214 được áp dụng. Điều đó dường như hoạt động tốt.

Chúng tôi cũng khám phá việc vá nó vào thời gian chạy. Hoạt động trên máy của tôi, nhưng chưa được kiểm tra đáng kể:

import pandas as pd 
import ast
import inspect

read_excel_ast = ast.parse[inspect.getsource[pd.read_excel]]

# Clear the decorators because they cause errors when exec.
read_excel_ast.body[0].decorator_list.clear[]

# Modify the return call to include the skip_blank_lines arg
return_args = read_excel_ast.body[0].body[1].value.keywords
new_arg = ast.keyword['skip_blank_lines',ast.Constant[False]]
new_arg.value.col_offset = 27
new_arg.value.lineno = return_args[-1].value.lineno + 1
return_args.append[new_arg]

exec[compile[read_excel_ast, '', 'exec'], pd.__dict__]

Cảm ơn @jmathew - Rất vui khi biết rằng đã hoạt động. Tôi đoán bạn đã xem xét điều này, nhưng thêm một cột bổ sung [ví dụ: "Dropme"] vào các tệp Excel là một cách giải quyết tiềm năng khác, nhưng điều đó không khả thi trong nhiều tình huống.

Cảm ơn vì ping @ahawryluk - với 1.3 xung quanh tôi đồng ý rằng điều này có thể được đóng lại.

Làm cách nào để bỏ qua các hàng trống trong gấu trúc?

Nếu bạn đang tìm cách thả các hàng [hoặc cột] chứa dữ liệu trống, bạn sẽ gặp may: phương thức dropna [] của Pandas [] dành riêng cho việc này. Về mặt kỹ thuật, bạn có thể chạy DF. dropna [] mà không có bất kỳ tham số nào và điều này sẽ mặc định để thả tất cả các hàng mà hoàn toàn trống.Pandas' dropna[] method is specifically for this. Technically you could run df. dropna[] without any parameters, and this would default to dropping all rows where are completely empty.

Làm thế nào để bạn loại bỏ các hàng trống khỏi một khung dữ liệu trong Python?

Để khắc phục điều này, bạn có thể chuyển đổi các stings trống [hoặc bất cứ thứ gì trong các ô trống của bạn] thành các đối tượng NP.NAN bằng cách sử dụng thay thế [], sau đó gọi dropna [] trên dataFrame của bạn để xóa các hàng với người thuê null.convert the empty stings [or whatever is in your empty cells] to np. nan objects using replace[] , and then call dropna[] on your DataFrame to delete rows with null tenants.

Làm thế nào để bạn bỏ qua các cột trong gấu trúc đọc excel?

Bỏ qua các cột từ tờ Excel Đôi khi trong khi đọc một tờ Excel vào Pandas DataFrame Bạn có thể cần phải bỏ qua các cột, bạn có thể làm điều này bằng cách sử dụng param usecols.Điều này lấy các giá trị {int, str, giống như danh sách hoặc mặc định có thể gọi không}.Để chỉ định danh sách các tên hoặc vị trí cột, sử dụng danh sách các chuỗi hoặc danh sách int.using usecols param. This takes values {int, str, list-like, or callable default None}. To specify the list of column names or positions use a list of strings or a list of int.

Làm cách nào để cứu một con gấu trúc ở Excel?

Bạn có thể viết bất kỳ dữ liệu nào [danh sách, chuỗi, số, v.v.] để vượt trội, trước tiên bằng cách chuyển đổi nó thành một khung dữ liệu gấu trúc và sau đó viết DataFrame thành Excel.Để xuất một dữ liệu gấu trúc dưới dạng tệp excel [phần mở rộng:. XLSX,. XLS], hãy sử dụng phương thức to_excel [].use the to_excel[] method.

Bài Viết Liên Quan

Chủ Đề