Thay thế giá trị bằng gấu trúc NaN

mô-đun nhập khẩu

import pandas as pd
import numpy as np

tạo khung dữ liệu giả

raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
'age': [20, 19, 22, 21],
'favorite_color': ['blue', 'red', 'yellow', "green"],
'grade': [88, 92, 95, 70]}
df = pd.DataFrame[raw_data, index = ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel']]
df
agefavorite_colorgradenameWillard Morris20blue88Willard MorrisAl Jennings19red92Al JenningsOmar Mullins22yellow95Omar MullinsSpencer McDaniel21green70Spencer McDaniel

Tạo một số giá trị NaN trong khung dữ liệu

agefavorite_colorgradenameWillard MorrisNaNblue88. 0Willard MorrisAl Jennings19. 0red92. 0Al JenningsOmar Mullins22. 0vàng95. 0 Omar Mullins Spencer McDaniel 21. 0greenNaNSpencer McDaniel

Thay thế các giá trị NaN trong khung dữ liệu [bằng 0 trong trường hợp này]

agefavorite_colorgradenameWillard Morris0. 0blue88. 0Willard MorrisAl Jennings19. 0red92. 0Al JenningsOmar Mullins22. 0vàng95. 0 Omar Mullins Spencer McDaniel 21. 0green0. 0Spencer McDaniel

Bạn có thể thay thế giá trị còn thiếu [

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5] trong
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
6 và
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
7 bằng bất kỳ giá trị nào bằng cách sử dụng phương pháp
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
8

  • gấu trúc. Khung dữ liệu. fillna — gấu trúc 1. 4. 0 tài liệu
  • gấu trúc. Loạt. fillna — gấu trúc 1. 4. 0 tài liệu

Bài viết này mô tả các nội dung sau

  • Thay thế tất cả các giá trị bị thiếu bằng cùng một giá trị
  • Thay thế các giá trị bị thiếu bằng các giá trị khác nhau cho mỗi cột
  • Thay thế các giá trị bị thiếu bằng giá trị trung bình, trung bình, chế độ, v.v. cho mỗi cột
  • Thay thế các giá trị bị thiếu bằng các giá trị hợp lệ trước đó/tiếp theo.
    print[df.fillna[0]]
    #       name   age state  point  other
    # 0    Alice  24.0    NY    0.0    0.0
    # 1        0   0.0     0    0.0    0.0
    # 2  Charlie   0.0    CA    0.0    0.0
    # 3     Dave  68.0    TX   70.0    0.0
    # 4    Ellen   0.0    CA   88.0    0.0
    # 5    Frank  30.0     0    0.0    0.0
    
    9,
    print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
    #       name   age state  point  other
    # 0    Alice  24.0    NY    NaN    NaN
    # 1      XXX  20.0   NaN    NaN    NaN
    # 2  Charlie  20.0    CA    NaN    NaN
    # 3     Dave  68.0    TX   70.0    NaN
    # 4    Ellen  20.0    CA   88.0    NaN
    # 5    Frank  30.0   NaN    NaN    NaN
    
    0
  • vận hành tại chỗ.
    print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
    #       name   age state  point  other
    # 0    Alice  24.0    NY    NaN    NaN
    # 1      XXX  20.0   NaN    NaN    NaN
    # 2  Charlie  20.0    CA    NaN    NaN
    # 3     Dave  68.0    TX   70.0    NaN
    # 4    Ellen  20.0    CA   88.0    NaN
    # 5    Frank  30.0   NaN    NaN    NaN
    
    1
  • Cho
    print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
    #       name   age state  point  other
    # 0    Alice  24.0    NY    NaN    NaN
    # 1      XXX  20.0   NaN    NaN    NaN
    # 2  Charlie  20.0    CA    NaN    NaN
    # 3     Dave  68.0    TX   70.0    NaN
    # 4    Ellen  20.0    CA   88.0    NaN
    # 5    Frank  30.0   NaN    NaN    NaN
    
    2

Sử dụng

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
3 nếu bạn muốn điền các giá trị còn thiếu bằng phép nội suy tuyến tính hoặc spline

  • gấu trúc. Nội suy NaN với nội suy[]

Để biết thêm thông tin về cách xóa hoặc đếm các giá trị bị thiếu, hãy xem các bài viết sau

  • gấu trúc. Xóa các giá trị bị thiếu [NaN] bằng dropna[]
  • gấu trúc. Phát hiện và đếm các giá trị bị thiếu [NaN] với hàm isnull[], isna[]

Lưu ý rằng không chỉ

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5 [Không phải là số] mà cả
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
5 cũng được coi là giá trị bị thiếu trong pandas

  • Thiếu giá trị trong gấu trúc [nan, Không có, pd. không có]

Ví dụ: đọc tệp CSV có giá trị bị thiếu với

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
6

  • sample_pandas_normal_nan. csv

raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
'age': [20, 19, 22, 21],
'favorite_color': ['blue', 'red', 'yellow', "green"],
'grade': [88, 92, 95, 70]}
df = pd.DataFrame[raw_data, index = ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel']]
df
4

nguồn.

Liên kết được tài trợ

Thay thế tất cả các giá trị bị thiếu bằng cùng một giá trị

Bằng cách chỉ định giá trị vô hướng làm đối số đầu tiên

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
7 của
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
8, tất cả các giá trị bị thiếu sẽ được thay thế bằng giá trị

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0

nguồn.

Lưu ý rằng kiểu dữ liệu

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
9 của một cột số bao gồm
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5 là
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
01, vì vậy ngay cả khi bạn thay thế
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5 bằng một số nguyên, kiểu dữ liệu vẫn là
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
01. Nếu bạn muốn chuyển đổi nó thành
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
04, hãy sử dụng
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
05

  • gấu trúc. Truyền DataFrame sang một loại dtype cụ thể với astype[]

Thay thế các giá trị bị thiếu bằng các giá trị khác nhau cho mỗi cột

Bằng cách chỉ định một từ điển

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
06 làm đối số đầu tiên
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
7 của
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
8, bạn có thể gán các giá trị khác nhau cho mỗi cột

Chỉ định một từ điển của

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
09. Nếu tên cột không được chỉ định, các giá trị bị thiếu trong cột của nó sẽ được giữ lại [= không được thay thế]. Nếu
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
90 không khớp với tên cột, nó sẽ bị bỏ qua

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN

nguồn.

Bạn cũng có thể chỉ định

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
2. Nhãn của
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
2 tương ứng với khóa của
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
06

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
0

nguồn.

Thay thế các giá trị bị thiếu bằng giá trị trung bình, trung bình, chế độ, v.v. cho mỗi cột

Giá trị trung bình của mỗi cột có thể được tính bằng phương pháp

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
94.
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
2 được trả lại.
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5 bị loại trừ, nhưng kết quả cho một cột có tất cả các phần tử là
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5 là
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
5

  • gấu trúc. Khung dữ liệu. có nghĩa là - gấu trúc 1. 4. 0 tài liệu

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9

nguồn.

Nếu bạn chỉ định

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
2 này làm đối số đầu tiên
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
7 của
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
8, các giá trị còn thiếu của cột tương ứng sẽ được thay thế bằng giá trị trung bình

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
4

nguồn.

Tương tự, nếu bạn muốn thay thế các giá trị bị thiếu bằng trung vị, hãy sử dụng phương thức

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
42. Nếu số lượng phần tử là số chẵn, giá trị trung bình của hai giá trị trung bình được trả về

  • gấu trúc. Khung dữ liệu. trung bình — gấu trúc 1. 4. 0 tài liệu

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
6

nguồn.

Chế độ có thể thu được bằng phương pháp

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
43. Vì
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
43 trả về
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
6, hàng đầu tiên được truy xuất là
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
2 bởi
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
47 trong ví dụ này

  • gấu trúc. Khung dữ liệu. chế độ — gấu trúc 1. 4. 0 tài liệu

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
2

nguồn.

Trong các ví dụ này, không có vấn đề gì, nhưng các phương thức như

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
94 có thể trả về các giá trị không mong muốn vì chúng cố gắng vận hành không chỉ các cột số mà cả các loại cột khác theo mặc định

Trong

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
94, v.v., nếu đối số
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
60 được đặt thành
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
61, thì chỉ các cột số được xử lý. Lưu ý rằng các cột loại
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
62 được coi là
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
63 và
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
64 ngay cả khi
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
65

Liên kết được tài trợ

Thay thế các giá trị bị thiếu bằng các giá trị hợp lệ trước đó/tiếp theo.
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9,
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
0

Đối số

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9 của
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
8 có thể được sử dụng để thay thế các giá trị bị thiếu bằng các giá trị hợp lệ trước đó/tiếp theo

Nếu

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9 được đặt thành
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
21 hoặc
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
22, các giá trị bị thiếu sẽ được thay thế bằng các giá trị hợp lệ trước đó [= điền về phía trước] và nếu
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
23 hoặc
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
24, được thay thế bằng các giá trị hợp lệ tiếp theo [= điền vào phía sau]

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
0

nguồn.

Nếu chỉ định

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9, thì có thể sử dụng
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
0 để chỉ định số lần thay thế liên tiếp tối đa

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
3

nguồn.

Nó có thể không được sử dụng thường xuyên, nhưng nếu đối số

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
27 được đặt thành
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
28 hoặc
print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
29, các giá trị bị thiếu sẽ được thay thế bằng các giá trị bên trái và bên phải

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
0

nguồn.

Các phương thức tương ứng với đối số

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
9 được cung cấp riêng

  • gấu trúc. Khung dữ liệu. ffill — gấu trúc 1. 4. 0 tài liệu
  • gấu trúc. Khung dữ liệu. pad — gấu trúc 1. 4. 0 tài liệu
  • gấu trúc. Khung dữ liệu. bfill — gấu trúc 1. 4. 0 tài liệu
  • gấu trúc. Khung dữ liệu. chèn lấp — pandas 1. 4. 0 tài liệu

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
01 và
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
02 tương đương với
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
03, và
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
04 và
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
05 tương đương với
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
06. Bạn có thể chỉ định
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
0

print[df.fillna[0]]
#       name   age state  point  other
# 0    Alice  24.0    NY    0.0    0.0
# 1        0   0.0     0    0.0    0.0
# 2  Charlie   0.0    CA    0.0    0.0
# 3     Dave  68.0    TX   70.0    0.0
# 4    Ellen   0.0    CA   88.0    0.0
# 5    Frank  30.0     0    0.0    0.0
1

nguồn.

vận hành tại chỗ.
print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
1

Như trong các ví dụ trên, theo mặc định, một đối tượng mới được trả về và đối tượng ban đầu không bị thay đổi, nhưng nếu

print[df.fillna[{'name': 'XXX', 'age': 20, 'ZZZ': 100}]]
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      XXX  20.0   NaN    NaN    NaN
# 2  Charlie  20.0    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen  20.0    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN
09, đối tượng ban đầu sẽ được cập nhật

Làm cách nào để thay thế giá trị null bằng NaN trong gấu trúc?

Sử dụng fillna[] thành giá trị NaN/Null với chuỗi rỗng . Điều này thay thế từng NaN trong DataFrame của gấu trúc bằng một chuỗi trống.

Làm cách nào để gấu trúc NaN có thể thay thế các giá trị không phải là số?

Quy trình tôi tuân theo .
Bước 1. Hãy thử nhập dữ liệu và để gấu trúc suy ra các loại dữ liệu. Kiểm tra xem các loại dữ liệu có như mong đợi không. .
Bước 2. Nếu các loại dữ liệu không như mong đợi, hãy đặt rõ ràng các loại dữ liệu khi đọc bằng cách sử dụng tham số dtypes. .
Bước 3. Tạo một danh sách rõ ràng các giá trị mà gấu trúc không thể chuyển đổi và chuyển chúng thành NaN khi đọc

Làm cách nào để thay thế giá trị trong gấu trúc?

Phương thức thay thế khung dữ liệu Pandas[] . Phương thức thay thế [] tìm kiếm toàn bộ Khung dữ liệu và thay thế mọi trường hợp của giá trị đã chỉ định. The replace[] method replaces the specified value with another specified value. The replace[] method searches the entire DataFrame and replaces every case of the specified value.

Chủ Đề