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
tuổifavorite_colorgradenameWillard Morris20xanh dương88Willard MorrisAl Jennings19đỏ92Al JenningsOmar Mullins22vàng95Omar MullinsSpencer McDaniel21xanh lá cây70Spencer McDanielTạo một số giá trị NaN trong khung dữ liệu
agefavorite_colorgradenameWillard MorrisNaNblue88. 0Willard MorrisAl Jennings19. 0red92. 0Al JenningsOmar Mullins22. 0vàng95. 0Omar MullinsSpencer McDaniel21. 0greenNaNSpencer McDanielThay 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. 0Omar MullinsSpencer McDaniel21. 0green0. 0Spencer McDanielTrong quá trình làm sạch dữ liệu pandas, việc thay thế các giá trị bị thiếu đóng vai trò rất quan trọng và trong một số trường hợp, chúng ta phải thay thế các giá trị bị thiếu đó bằng giá trị trung bình của các phần tử chuỗi. Điều này có thể được thực hiện bằng cách sử dụng phương thức fillna[]
Hoạt động cơ bản của loạt gấu trúc này. Phương thức fillna[] được sử dụng để thay thế các giá trị bị thiếu [Nan hoặc NA] bằng một giá trị được chỉ định. Ban đầu, phương thức xác minh tất cả các giá trị Nan và thay thế chúng bằng giá trị thay thế được chỉ định
ví dụ 1
Ở đây chúng ta sẽ thấy làm thế nào loạt. phương thức fillna[] thay thế giá trị còn thiếu bằng giá trị trung bình
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]
Giải trình
Trong ví dụ sau, chúng tôi sẽ thay thế các giá trị còn thiếu bằng giá trị trung bình của các phần tử chuỗi. Để làm điều này, chúng tôi áp dụng loạt. mean[] làm tham số cho phương thức fillna[]
đầu ra
Đầu ra được đưa ra dưới đây -
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float64
Như bạn có thể thấy, giá trị 52. 0 [giá trị trung bình] được thay thế bằng các giá trị Nan ở các vị trí chỉ mục 1,2,5,7 và 10
ví dụ 2
Hãy lấy một ví dụ khác để thay thế các giá trị còn thiếu Nan/NA bằng giá trị trung bình của các phần tử chuỗi
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]
Giải trình
Ban đầu, chúng ta đã tạo đối tượng pandas series với danh sách các số nguyên và giá trị Nan, sau đó gọi phương thức fillna[] với giá trị trung bình. Bằng cách sử dụng loạt. mean[] chúng tôi đã tính giá trị trung bình và sau đó áp dụng giá trị trung bình đó làm tham số của phương thức fillna[]
đầu ra
Đầu ra được đưa ra dưới đây -
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float64
Giá trị trung bình 72. 166667 được thay thế cho các giá trị bị thiếu, các vị trí chỉ mục là 0, 6, 7 và 9
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.
9,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
10raw_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
- vận hành tại chỗ.
11raw_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
- Cho
12raw_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
Sử dụng
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
13 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ả 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
15 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
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
16- 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
8nguồn. pandas_nan_fillna. py
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
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
17 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. pandas_nan_fillna. py
Lưu ý rằng kiểu dữ liệu
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
19 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à # importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]41, 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à # importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]41. Nếu bạn muốn chuyển đổi nó thành
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]44, hãy sử dụng
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]45
- 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
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]46 làm đối số đầu tiên
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
17 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ộtChỉ định một từ điển của
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]49. 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
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float6430 không khớp với tên cột, nó sẽ bị bỏ qua
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
1nguồn. pandas_nan_fillna. py
Bạn cũng có thể chỉ định
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
12. Các nhãn của 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
12 tương ứng với khóa của # importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]46
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]4
nguồn. pandas_nan_fillna. py
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
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float6434.
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
12 đượ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
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float643
nguồn. pandas_nan_fillna. py
Nếu bạn chỉ định
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
12 này làm đối số đầu tiên 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
17 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# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]8
nguồn. pandas_nan_fillna. py
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
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]82. 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
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float640
nguồn. pandas_nan_fillna. py
Chế độ có thể thu được bằng phương pháp
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]83. Vì
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]83 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à 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
12 bởi # importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series[[np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]] print[s] # replace Missing values with an average value result = s.fillna[s.mean[]] print['Result:'] print[result]87 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
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float646
nguồn. pandas_nan_fillna. py
Trong các ví dụ này, không có vấn đề gì, nhưng các phương thức như
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float6434 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
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float6434, v.v., nếu đối số
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6400 được đặt thành
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6401, thì chỉ các cột số được xử lý. Lưu ý rằng các cột loại
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6402 được coi là
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6403 và
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6404 ngay cả khi
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6405
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, 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
10
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
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
Đố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 theoNế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 0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6461 hoặc
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6462, 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
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6463 hoặc
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6464, đượ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[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
4nguồn. pandas_nan_fillna. py
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 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
10 để chỉ định số lần thay thế liên tiếp tối đaprint[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
7nguồn. pandas_nan_fillna. py
Nó có thể không được sử dụng thường xuyên, nhưng nếu đối số
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6467 được đặt thành
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6468 hoặc
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float6469, 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
0nguồn. pandas_nan_fillna. py
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[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
41 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
42 tương đương vớ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
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
44 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
45 tương đương vớ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
46. Bạn có thể chỉ định 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
10print[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
1nguồn. pandas_nan_fillna. py
vận hành tại chỗ. 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
11
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
Như đã trình bày 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[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
49, đối tượng ban đầu sẽ được cập nhật