Pandas thả hàng với NaN trong nhiều cột

Bạn nên cố gắng sử dụng hàm

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
9 với tham số
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
0 bằng với các cột mà bạn đang cố gắng thả vào. Đây là một ví dụ ngắn được lấy từ tài liệu của Pandas

df = pd.DataFrame[{"name": ['Alfred', 'Batman', 'Catwoman'],
                   "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                   "born": [pd.NaT, pd.Timestamp["1940-04-25"],
                            pd.NaT]}]

df
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

df.dropna[subset=['name', 'born']]

Điều này mang lại cho bạn những điều sau đây

       name        toy       born
1    Batman  Batmobile 1940-04-25

Trong hướng dẫn này, bạn sẽ học cách sử dụng phương thức Pandas dropna[] để loại bỏ các giá trị còn thiếu trong Khung dữ liệu Pandas. Làm việc với dữ liệu bị thiếu là một trong những kỹ năng cần thiết để làm sạch dữ liệu của bạn trước khi phân tích nó. Bởi vì việc làm sạch dữ liệu có thể chiếm tới 80% thời gian của nhà phân tích dữ liệu / nhà khoa học dữ liệu, nên có thể thực hiện công việc này một cách hiệu quả và hiệu quả là một kỹ năng quan trọng

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách sử dụng phương pháp Pandas
    # Loading a Sample Pandas DataFrame
    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame[{
        'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
        'Age': [36, np.NaN, 33, 27, np.NaN],
        'Active': [True, False, np.NaN, True, np.NaN],
        'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
        'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]
    
    print[df.head[]]
    
    # Returns:
    #    Name   Age Active Country  Missing
    # 0  Evan  36.0   True     USA      NaN
    # 1  Kyra   NaN  False  Canada      NaN
    # 2  Kate  33.0    NaN  Canada      NaN
    # 3   Nik  27.0   True     USA      NaN
    # 4   NaN   NaN    NaN     NaN      NaN
    2 hiệu quả
  • Cách loại bỏ các hàng bị thiếu giá trị [NaN] trong Pandas
  • Cách loại bỏ các cột bị thiếu giá trị [NaN] trong Pandas
  • Cách sử dụng phương pháp Pandas
    # Loading a Sample Pandas DataFrame
    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame[{
        'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
        'Age': [36, np.NaN, 33, 27, np.NaN],
        'Active': [True, False, np.NaN, True, np.NaN],
        'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
        'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]
    
    print[df.head[]]
    
    # Returns:
    #    Name   Age Active Country  Missing
    # 0  Evan  36.0   True     USA      NaN
    # 1  Kyra   NaN  False  Canada      NaN
    # 2  Kate  33.0    NaN  Canada      NaN
    # 3   Nik  27.0   True     USA      NaN
    # 4   NaN   NaN    NaN     NaN      NaN
    2 chỉ trên các cột cụ thể
  • Cách đặt ngưỡng khi loại bỏ các giá trị bị thiếu trong Khung dữ liệu Pandas
  • Cách khắc phục các lỗi thường gặp khi làm việc với phương pháp Pandas
    # Loading a Sample Pandas DataFrame
    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame[{
        'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
        'Age': [36, np.NaN, 33, 27, np.NaN],
        'Active': [True, False, np.NaN, True, np.NaN],
        'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
        'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]
    
    print[df.head[]]
    
    # Returns:
    #    Name   Age Active Country  Missing
    # 0  Evan  36.0   True     USA      NaN
    # 1  Kyra   NaN  False  Canada      NaN
    # 2  Kate  33.0    NaN  Canada      NaN
    # 3   Nik  27.0   True     USA      NaN
    # 4   NaN   NaN    NaN     NaN      NaN
    2

Mục lục

  • Tìm hiểu Phương thức dropna[] của Pandas
  • Đang tải một Khung dữ liệu Pandas mẫu
  • Cách thả hàng với dữ liệu bị thiếu trong Pandas bằng cách sử dụng. dropna[]
  • Cách sử dụng Pandas dropna[] với một tập hợp con hoặc các cột cụ thể
  • Cách xóa các cột có dữ liệu bị thiếu trong Pandas bằng cách sử dụng. dropna[]
  • Cách đặt ngưỡng giá trị bị thiếu cho việc xóa bản ghi trong Pandas
  • Xoá cột với một số bản ghi bị thiếu nhất định
  • Làm thế nào để loại bỏ các giá trị còn thiếu trong Pandas tại chỗ
  • Các câu hỏi thường gặp
  • Phần kết luận
  • Tài nguyên bổ sung

Tìm hiểu Phương thức dropna[] của Pandas

Phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 là một phương pháp cần thiết cho nhà phân tích dữ liệu hoặc nhà khoa học dữ liệu ở mọi cấp độ. Bởi vì làm sạch dữ liệu là một bước tiền xử lý cần thiết, biết cách làm việc với dữ liệu bị thiếu sẽ giúp bạn trở thành một lập trình viên giỏi hơn

Trước khi đi sâu vào cách sử dụng phương pháp này, hãy dành một phút để hiểu cách thức hoạt động của phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2. Chúng ta có thể làm điều này bằng cách xem các tham số và đối số mặc định mà phương thức cung cấp

# Understanding the Pandas .dropna[] Method
import pandas as pd
df = pd.DataFrame[]

df.dropna[
   axis=0,
   how='any',
   thresh=None,
   subset=None,
   inplace=False
]

Chúng ta có thể thấy rằng phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 cung cấp năm tham số khác nhau. Tất cả các tham số này đều có đối số mặc định được cung cấp. Điều này có nghĩa là bạn chỉ cần gọi phương thức và nó sẽ thực thi

Tuy nhiên, hiểu tác dụng của các tham số khác nhau sẽ đảm bảo rằng bạn nhận được kết quả như mong đợi. Hãy chia nhỏ các tham số này xuống xa hơn một chút

ArgumentDescriptionDefault ValueAccepted Valuesaxis=Xác định xem các hàng hoặc cột có bị xóa hay không nếu chúng chứa dữ liệu bị thiếu. 0{0, 1, ‘index’, ‘columns’}how=Xác định xem một cột hoặc hàng phải thiếu bất kỳ hoặc tất cả giá trị nào thì mới được xóa. ‘any’{‘any’, ‘all’}thresh=Cần có bao nhiêu giá trị không phải NA để loại bỏ một cột hoặc hàng. Noneintegerssubset=Các nhãn dọc theo trục khác cần xem xét khi kiểm tra các giá trị bị thiếu. Không có nhãn cột hoặc chuỗi nhãn tại chỗ=Có hoàn thành thao tác tại chỗ hay không. FalsebooleansHiểu về Pandas
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 tham số và đối số mặc định

Dựa trên các tham số này, chúng ta có thể thấy rằng phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 cung cấp rất nhiều tính linh hoạt trong cách loại bỏ các bản ghi có giá trị bị thiếu

Bây giờ bạn đã hiểu rõ về những gì có thể xảy ra với phương pháp này, hãy đi sâu vào việc sử dụng phương pháp này để loại bỏ tất cả các hàng có dữ liệu bị thiếu

Đang tải một Khung dữ liệu Pandas mẫu

Để làm theo hướng dẫn này, tôi đã cung cấp một Khung dữ liệu Pandas mẫu. Nếu bạn không sử dụng tập dữ liệu của riêng mình, vui lòng sao chép và dán mã bên dưới vào trình chỉnh sửa mã mà bạn chọn

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN

Chúng ta có thể thấy rằng tập dữ liệu có năm cột khác nhau, một số cột chứa một số hoặc tất cả các giá trị bị thiếu. Trong phần sau, bạn sẽ tìm hiểu cách loại bỏ các hàng chứa dữ liệu bị thiếu

Cách thả hàng với dữ liệu bị thiếu trong Pandas bằng cách sử dụng. dropna[]

Phương pháp Pandas

       name        toy       born
1    Batman  Batmobile 1940-04-25
20 giúp dễ dàng loại bỏ tất cả các hàng có dữ liệu bị thiếu trong đó. Theo mặc định, Pandas
       name        toy       born
1    Batman  Batmobile 1940-04-25
20 sẽ loại bỏ bất kỳ hàng nào có bất kỳ bản ghi nào bị thiếu trong đó. Điều này là do tham số
       name        toy       born
1    Batman  Batmobile 1940-04-25
22 được đặt thành
       name        toy       born
1    Batman  Batmobile 1940-04-25
23 và tham số
       name        toy       born
1    Batman  Batmobile 1940-04-25
24 được đặt thành
       name        toy       born
1    Batman  Batmobile 1940-04-25
25

Hãy xem điều gì sẽ xảy ra khi chúng ta áp dụng phương thức

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 cho DataFrame của mình

       name        toy       born
1    Batman  Batmobile 1940-04-25
2

Vì mọi bản ghi trong Khung dữ liệu của chúng tôi đều chứa một giá trị bị thiếu nên tất cả các bản ghi trong Khung dữ liệu của chúng tôi đều bị xóa

Chúng ta có thể sửa đổi hành vi của hàm để chỉ loại bỏ các bản ghi khi thiếu tất cả các giá trị bằng cách chuyển

       name        toy       born
1    Batman  Batmobile 1940-04-25
27. Hãy xem nó trông như thế nào

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
1

Bằng cách sửa đổi hành vi của phương thức, chúng tôi có thể hướng dẫn Pandas chỉ loại bỏ các bản ghi khi thiếu tất cả các giá trị

Trong phần tiếp theo, bạn sẽ tìm hiểu cách hướng dẫn Pandas chỉ kiểm tra các bản ghi bị thiếu trong một số cột

Cách sử dụng Pandas dropna[] với một tập hợp con hoặc các cột cụ thể

Pandas giúp dễ dàng sử dụng phương pháp

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 để chỉ kiểm tra một tập hợp con các cột hoặc một cột cụ thể. Điều này có thể cực kỳ hữu ích khi một số cột quan trọng đối với phân tích của bạn hơn những cột khác

Để chỉ định cột nào cần kiểm tra, bạn có thể sử dụng tham số

       name        toy       born
1    Batman  Batmobile 1940-04-25
29, tham số này nhận nhãn một cột hoặc danh sách các nhãn cột

Hãy xem cách đầu tiên chúng ta có thể chỉ kiểm tra các giá trị bị thiếu trong một cột duy nhất, cột

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
10

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
5

Trong khối mã ở trên, chúng tôi đã chuyển một chuỗi vào tham số

       name        toy       born
1    Batman  Batmobile 1940-04-25
29. Bởi vì chúng tôi chỉ muốn kiểm tra các giá trị bị thiếu trong một cột, nên một chuỗi đã hoạt động. Trong trường hợp này, Pandas đã bỏ qua việc thiếu các giá trị trong các cột khác

Bây giờ, hãy xem cách chúng tôi có thể kiểm tra các giá trị bị thiếu trên nhiều cột. Để làm điều này, chúng ta sẽ cần chuyển một danh sách [hoặc chuỗi] các nhãn cột vào tham số

       name        toy       born
1    Batman  Batmobile 1940-04-25
29. Hãy xem cách chúng ta có thể kiểm tra các cột
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
10 và
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
14

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
0

Trong trường hợp này, chúng tôi có thể kiểm tra các bản ghi bị thiếu trong hai cột. Trong phần sau, bạn sẽ tìm hiểu cách loại bỏ các cột có dữ liệu bị thiếu trong Khung dữ liệu Pandas

Cách xóa các cột có dữ liệu bị thiếu trong Pandas bằng cách sử dụng. dropna[]

Việc xóa các cột trong Khung dữ liệu Pandas hoạt động theo cách rất giống với việc xóa các bản ghi. Để làm điều này, chúng tôi chỉ cần đặt tham số

       name        toy       born
1    Batman  Batmobile 1940-04-25
24 thành
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
16 hoặc
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
17. Mặc dù việc loại bỏ các cột dựa trên dữ liệu bị thiếu có lẽ là một bài tập ít phổ biến hơn, nhưng điều quan trọng là phải biết cách thực hiện việc này

Hãy xem điều gì sẽ xảy ra khi chúng ta chuyển

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
18 vào cuộc gọi phương thức
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 của chúng ta

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
6

Bởi vì mỗi cột chứa một số dữ liệu bị thiếu, tất cả các cột đã bị loại bỏ. Tại thời điểm này, chỉ còn lại một DataFrame trống và các chỉ số

Chúng tôi có thể sửa đổi hành vi để chỉ loại bỏ các cột có tất cả các giá trị bị thiếu bằng cách chuyển vào

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
50

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
8

Bằng cách sửa đổi hành vi của phương thức, chúng tôi chỉ có thể xóa các cột có tất cả các bản ghi bị thiếu

Trong nhiều trường hợp, bạn sẽ muốn loại bỏ các bản ghi hoặc cột dựa trên một số ngưỡng giá trị – đây là điều bạn sẽ tìm hiểu trong phần sau

Cách đặt ngưỡng giá trị bị thiếu cho việc xóa bản ghi trong Pandas

Bằng cách sử dụng tham số

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
51, bạn có thể đặt số lượng giá trị tối thiểu không được thiếu để bản ghi bị xóa. Điều này cho phép bạn chỉ định tối thiểu mỗi bản ghi phải có bao nhiêu điểm dữ liệu để nó được lưu trong tập dữ liệu

Vì phương thức

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 của Pandas sẽ loại bỏ các bản ghi theo mặc định, nên chúng ta chỉ cần áp dụng tham số
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
51 để chạy phương thức của mình. Hãy xem cách chúng tôi có thể chỉ định rằng chúng tôi muốn có ít nhất bốn điểm dữ liệu cho mỗi bản ghi

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2

Trong ví dụ trên, chỉ những bản ghi có ít nhất bốn giá trị không bị thiếu mới được lưu giữ. Trong phần sau, bạn sẽ tìm hiểu cách sử dụng tham số này để loại bỏ các cột có số lượng bản ghi bị thiếu nhất định

Xoá cột với một số bản ghi bị thiếu nhất định

Tương tự như ví dụ trên, bạn có thể muốn loại bỏ toàn bộ cột nếu thiếu một số bản ghi đã đặt. Bởi vì chúng ta có thể sử dụng phương thức

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 để loại bỏ các cột, nên chúng ta có thể kết hợp phương thức này với tham số
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
51 để loại bỏ các cột

Vì tham số

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
56 hoạt động bằng cách chỉ định số lượng bản ghi không được rỗng, nên chúng tôi cần chỉ định đó là giá trị

Hãy xem cách chúng tôi có thể loại bỏ các cột không có ít nhất 4 điểm dữ liệu không bị thiếu

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
6

Tuy nhiên, trong nhiều trường hợp, bạn sẽ muốn loại bỏ các cột dựa trên tỷ lệ phần trăm của các giá trị bị thiếu. Chúng ta có thể làm điều này bằng cùng một phương thức, nhưng chỉ cần tính giá trị trong lệnh gọi phương thức của chúng ta

Hãy xem cách chúng tôi có thể loại bỏ các cột có ít nhất 10% giá trị bị thiếu

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
0

Trong ví dụ trên, chúng tôi tính toán tham số

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
51 trong chính cuộc gọi phương thức bằng cách tính toán số lượng bản ghi không bị thiếu tối thiểu. Vì tham số
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
51 xem xét có bao nhiêu bản ghi không bị thiếu nên chúng tôi nhân độ dài của Khung dữ liệu với
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
59

Làm thế nào để loại bỏ các giá trị còn thiếu trong Pandas tại chỗ

Trong các ví dụ trên, chúng tôi đã loại bỏ các bản ghi hoặc cột bằng cách gán lại DataFrame cho chính nó. Tuy nhiên, nếu bạn muốn thả bản ghi hoặc cột tại chỗ, bạn có thể thực hiện việc này bằng cách đặt

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
00

Bằng cách sửa đổi DataFrame tại chỗ, phương thức này không trả về bất kỳ thứ gì. Thay vào đó, nó tự sửa đổi DataFrame cơ bản

Hãy xem cách chúng tôi có thể loại bỏ các hàng bị thiếu khi tất cả các bản ghi bị thiếu, tại chỗ

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
1

Trong khối mã ở trên, chúng tôi đã loại bỏ các bản ghi tại chỗ. Điều này tránh việc phải gán lại DataFrame cho chính nó

Các câu hỏi thường gặp

Pandas dropna làm gì?

Phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 được sử dụng để loại bỏ các bản ghi hoặc cột bị thiếu dữ liệu. Phương pháp này cho phép bạn linh hoạt về cách loại bỏ các bản ghi

Tại sao Pandas dropna không hoạt động?

Phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 có thể không hoạt động nếu DataFrame không được gán lại cho chính nó hoặc nếu phương pháp này không được thực hiện tại chỗ. Nếu bạn không giảm giá trị tại chỗ, bạn cần gán lại DataFrame cho chính nó

Làm cách nào tôi có thể đặt lại chỉ mục DataFrame khi sử dụng Pandas dropna?

Phương thức

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 không cung cấp tùy chọn đặt lại chỉ mục. Tuy nhiên, bạn có thể xâu chuỗi quá trình đặt lại bằng phương pháp
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
04. Ví dụ, bạn có thể viết.
# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
05

Phần kết luận

Trong bài đăng này, bạn đã học cách sử dụng phương pháp Pandas

# Loading a Sample Pandas DataFrame
import pandas as pd
import numpy as np

df = pd.DataFrame[{
    'Name': ['Evan', 'Kyra', 'Kate', 'Nik', np.NaN],
    'Age': [36, np.NaN, 33, 27, np.NaN],
    'Active': [True, False, np.NaN, True, np.NaN],
    'Country': ['USA', 'Canada', 'Canada', 'USA', np.NaN],
    'Missing': [np.NaN, np.NaN, np.NaN, np.NaN, np.NaN]}]

print[df.head[]]

# Returns:
#    Name   Age Active Country  Missing
# 0  Evan  36.0   True     USA      NaN
# 1  Kyra   NaN  False  Canada      NaN
# 2  Kate  33.0    NaN  Canada      NaN
# 3   Nik  27.0   True     USA      NaN
# 4   NaN   NaN    NaN     NaN      NaN
2 để loại bỏ các bản ghi hoặc cột bị thiếu trong DataFrame. Lần đầu tiên bạn tìm hiểu về các tham số khác nhau có sẵn trong phương thức. Sau đó, bạn đã học cách sử dụng phương pháp để loại bỏ các bản ghi bị thiếu dữ liệu cũng như các cột bị thiếu dữ liệu. Sau đó, bạn đã học cách sử dụng phương pháp loại bỏ bản ghi dựa trên ngưỡng không thiếu giá trị và cách sửa đổi DataFrame tại chỗ

Chủ Đề