Xóa NaN khỏi bộ Python

Sử dụng hàm dropna[] để thả các hàng có giá trị


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
3/

import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
4 trong DataFrame của gấu trúc. Python không hỗ trợ Null do đó mọi dữ liệu bị thiếu được biểu thị là Không có hoặc NaN. NaN là viết tắt của Not A Number và là một trong những cách phổ biến để biểu thị giá trị còn thiếu trong dữ liệu. Giá trị không có/NaN là một trong những vấn đề chính trong Phân tích dữ liệu, do đó, trước khi chúng tôi xử lý, bạn cần loại bỏ các hàng có giá trị NaN hoặc thay thế NaN bằng giá trị trống cho Chuỗi và thay thế NaN bằng 0 cho các cột số

pandas Drop Rows với NaN key Points

  • dropna[] được sử dụng để thả các hàng có giá trị
    
    import pandas as pd
    import numpy as np
    technologies = [{
         'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
         'Fee' :[20000,np.nan,26000,24000,np.nan],
         'Duration':['30days',np.nan,'35days','40days',np.nan],
         'Discount':[1000,np.nan,2500,None,np.nan]
                   }]
    df = pd.DataFrame[technologies]
    print[df]
    
    3/
    
    import pandas as pd
    import numpy as np
    technologies = [{
         'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
         'Fee' :[20000,np.nan,26000,24000,np.nan],
         'Duration':['30days',np.nan,'35days','40days',np.nan],
         'Discount':[1000,np.nan,2500,None,np.nan]
                   }]
    df = pd.DataFrame[technologies]
    print[df]
    
    4 từ DataFrame
  • 
    import pandas as pd
    import numpy as np
    technologies = [{
         'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
         'Fee' :[20000,np.nan,26000,24000,np.nan],
         'Duration':['30days',np.nan,'35days','40days',np.nan],
         'Discount':[1000,np.nan,2500,None,np.nan]
                   }]
    df = pd.DataFrame[technologies]
    print[df]
    
    7 không phải là số [NaN], thuộc loại số float [dấu phẩy động] tích hợp sẵn trong Python
  • 
    import pandas as pd
    import numpy as np
    technologies = [{
         'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
         'Fee' :[20000,np.nan,26000,24000,np.nan],
         'Duration':['30days',np.nan,'35days','40days',np.nan],
         'Discount':[1000,np.nan,2500,None,np.nan]
                   }]
    df = pd.DataFrame[technologies]
    print[df]
    
    4 thuộc NoneType và nó là một đối tượng trong Python

1. Ví dụ nhanh về các hàng thả với giá trị NaN

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách loại bỏ các hàng có giá trị nan trong DataFrame


# Below are a quick example
# Drop all rows with NaN values
df2=df.dropna[]
df2=df.dropna[axis=0]

# Reset index after drop
df2=df.dropna[].reset_index[drop=True]

# Drop row that has all NaN values
df2=df.dropna[how='all']

# Drop rows that has NaN values on selected columns
df2=df.dropna[subset=['Courses','Fee']]

# With threshold, 
# Keep only the rows with at least 2 non-NA values.
df2=df.dropna[thresh=2]

# Drop Rows with NaN Values inplace
df.dropna[inplace=True]

Bây giờ, hãy tạo một DataFrame với một vài hàng và cột và thực hiện một số ví dụ để tìm hiểu bằng cách sử dụng các hàng thả xuống có giá trị nan. Khung dữ liệu của chúng tôi chứa các tên cột


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
9,

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
0,

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
1 và

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
2


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]

Sản lượng dưới sản lượng

________số 8

2. Xoá hàng với giá trị NaN

Bằng cách sử dụng phương thức dropna[], bạn có thể thả các hàng có giá trị NaN [Không phải là số] và Không có giá trị nào từ DataFrame của gấu trúc. Lưu ý rằng theo mặc định, nó trả về bản sao của DataFrame sau khi xóa hàng. Nếu bạn muốn xóa khỏi DataFrame hiện có, bạn nên sử dụng


  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
3


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
4

Sản lượng dưới sản lượng


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
5

Ngoài ra, bạn cũng có thể sử dụng


  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
4 làm thông số để xóa các hàng bằng NaN, ví dụ như

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
5. Sử dụng dropna[axis=1] để thả tất cả các cột có giá trị NaN khỏi DataFrame

Đăng các hàng bị giảm bằng NaN, đôi khi bạn có thể yêu cầu đặt lại chỉ mục, bạn có thể làm như vậy bằng DataFrame. phương thức reset_index[]


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
8

Sản lượng dưới sản lượng


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
9

3. Bỏ NaN cho tất cả các Cột trong DataFrame

Sử dụng tham số


  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
6 để chỉ định cách bạn muốn xóa hàng. Theo mặc định,

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
7 được chỉ định xóa các hàng khi có NaN/Không có trên bất kỳ phần tử nào [thiếu dữ liệu trên bất kỳ phần tử nào]

Sử dụng


  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
8 để xóa các hàng có tất cả các giá trị NaN/Không có giá trị nào trong một hàng [thiếu dữ liệu cho tất cả các thành phần trong một hàng]


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
3

Sản lượng dưới sản lượng


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
4

4. Thả giá trị NaN trên các cột đã chọn từ danh sách

Đôi khi, bạn có thể được yêu cầu chỉ bỏ hàng khi các cột đã chọn có giá trị NaN/Không có trong DataFrame, bạn có thể đạt được điều này bằng cách sử dụng thông số


  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
9. Thông số này có một danh sách các tên nhãn


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
6

Sản lượng dưới sản lượng


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
0

5. Thả hàng với giá trị NaN tại chỗ

Như bạn đã thấy, theo mặc định, phương thức


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
40 không loại bỏ các hàng khỏi DataFrame hiện có, thay vào đó, nó trả về một bản sao của DataFrame. Nếu bạn muốn bỏ DataFrame hiện có, hãy sử dụng

  Courses      Fee Duration  Discount
0   Spark  20000.0   30days    1000.0
1    Java      NaN      NaN       NaN
2  Hadoop  26000.0   35days    2500.0
3  Python  24000.0   40days       NaN
4     NaN      NaN      NaN       NaN
3


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
1

6. Hoàn thành ví dụ về hàng thả với giá trị NaN

Dưới đây là một ví dụ đầy đủ về cách xóa các hàng có giá trị NaN khỏi DataFrame


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
2

Phần kết luận

Trong bài viết này, bạn đã học cách xóa các hàng có giá trị NaN/Không có trong DataFrame của gấu trúc bằng cách sử dụng


import pandas as pd
import numpy as np
technologies = [{
     'Courses':["Spark",'Java',"Hadoop",'Python',np.nan],
     'Fee' :[20000,np.nan,26000,24000,np.nan],
     'Duration':['30days',np.nan,'35days','40days',np.nan],
     'Discount':[1000,np.nan,2500,None,np.nan]
               }]
df = pd.DataFrame[technologies]
print[df]
42. Cũng đã học cách chỉ xóa các hàng khi tất cả các giá trị là NaN/Không, chỉ xóa khi các cột được chọn có giá trị NaN và xóa bằng tham số tại chỗ

Chủ Đề