Chức năng này đặc biệt hữu ích khi bạn cần xuất DataFrame của gấu trúc sang cơ sở dữ liệu sử dụng Không để biểu thị các giá trị bị thiếu thay vì NaN Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế Show
Ví dụ. Thay thế NaN bằng Không trong PandasGiả sử chúng ta có DataFrame gấu trúc sau import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'A': [5, 6, 8, np.nan, 4, 15, 13],
'B': [np.nan, 12, np.nan, 10, 23, 6, 4],
'C': [2, 7, 6, 3, 2, 4, np.nan],
'D': [5, np.nan, 6, 15, 1, np.nan, 4]})
#view DataFrame
print(df)
A B C D
0 5.0 NaN 2.0 5.0
1 6.0 12.0 7.0 NaN
2 8.0 NaN 6.0 6.0
3 NaN 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 NaN
6 13.0 4.0 NaN 4.0 Lưu ý rằng có một số giá trị NaN trong DataFrame Để thay thế từng giá trị NaN bằng Không, chúng ta có thể sử dụng cú pháp sau #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
Lưu ý rằng mỗi NaN trong mỗi cột của DataFrame đã được thay thế bằng Không Lưu ý rằng nếu bạn chỉ muốn thay thế các giá trị NaN bằng Không có trong một cột cụ thể, bạn có thể sử dụng cú pháp sau >>> np. nan_to_num(np. thông tin) 1. 7976931348623157e+308 >>> np. nan_to_num(-np. thông tin) -1. 7976931348623157e+308 >>> np. nan_to_num(np. nan) 0. 0 >>> x = np. mảng ([np. inf, -np. inf, np. nan, -128, 128]) >>> np. mảng nan_to_num(x)([ 1. 79769313e+308, -1. 79769313e+308, 0. 00000000e+000, # có thể thay đổi -1. 28000000e+002, 1. 28000000e+002]) >>> np. mảng nan_to_num(x, nan=-9999, posinf=33333333, neginf=33333333)([ 3. 3333333e+07, 3. 3333333e+07, -9. 9990000e+03, -1. 2800000e+02, 1. 2800000e+02]) >>> y = np. mảng ([phức tạp (np. inf, np. nan), np. nan, phức tạp (np. nan, np. inf)]) mảng ([ 1. 79769313e+308, -1. 79769313e+308, 0. 00000000e+000, # có thể thay đổi -1. 28000000e+002, 1. 28000000e+002]) >>> np. mảng nan_to_num(y)([ 1. 79769313e+308 +0. 00000000e+000j, # có thể thay đổi 0. 00000000e+000 +0. 00000000e+000j, 0. 00000000e+000 +1. 79769313e+308j]) >>> np. mảng nan_to_num(y, nan=111111, posinf=222222)([222222. +111111. j, 111111. +0. j, 111111. +222222. j])Vì dữ liệu có nhiều hình dạng và hình thức, pandas nhằm mục đích linh hoạt trong việc xử lý dữ liệu bị thiếu. Mặc dù In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 là điểm đánh dấu giá trị bị thiếu mặc định vì lý do tốc độ tính toán và sự thuận tiện, nhưng chúng ta cần có thể dễ dàng phát hiện giá trị này với các loại dữ liệu khác nhau. dấu phẩy động, số nguyên, boolean và đối tượng chung. Tuy nhiên, trong nhiều trường hợp, Python In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object1 sẽ phát sinh và chúng tôi cũng muốn xem xét rằng “thiếu” hoặc “không có sẵn” hoặc “NA” Ghi chú Nếu bạn muốn coi In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object2 và In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object3 là "NA" trong tính toán, bạn có thể đặt In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object4 In [1]: df = pd.DataFrame( ...: np.random.randn(5, 3), ...: index=["a", "c", "e", "f", "h"], ...: columns=["one", "two", "three"], ...: ) ...: In [2]: df["four"] = "bar" In [3]: df["five"] = df["one"] > 0 In [4]: df Out[4]: one two three four five a 0.469112 -0.282863 -1.509059 bar True c -1.135632 1.212112 -0.173215 bar False e 0.119209 -1.044236 -0.861849 bar True f -2.104569 -0.494929 1.071804 bar False h 0.721555 -0.706771 -1.039575 bar True In [5]: df2 = df.reindex(["a", "b", "c", "d", "e", "f", "g", "h"]) In [6]: df2 Out[6]: one two three four five a 0.469112 -0.282863 -1.509059 bar True b NaN NaN NaN NaN NaN c -1.135632 1.212112 -0.173215 bar False d NaN NaN NaN NaN NaN e 0.119209 -1.044236 -0.861849 bar True f -2.104569 -0.494929 1.071804 bar False g NaN NaN NaN NaN NaN h 0.721555 -0.706771 -1.039575 bar True Để làm cho việc phát hiện các giá trị bị thiếu dễ dàng hơn (và trên các kiểu mảng khác nhau), pandas cung cấp các hàm In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object5 và In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object6, đây cũng là các phương thức trên các đối tượng Sê-ri và DataFrame #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
0Cảnh báo Người ta phải lưu ý rằng trong Python (và NumPy), In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object7 không so sánh bằng nhau, nhưng In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object8 thì có. Lưu ý rằng pandas/NumPy sử dụng thực tế là In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object9 và đối xử với In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object1 như #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
51#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
6Vì vậy, so với ở trên, so sánh đẳng thức vô hướng so với #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
52 không cung cấp thông tin hữu ích#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
8Kiểu số nguyên và thiếu dữ liệu#Bởi vì In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 là một số float, một cột gồm các số nguyên thậm chí còn thiếu một giá trị được chuyển sang kiểu dtype dấu phẩy động (xem Hỗ trợ cho số nguyên NA for more). pandas provides a nullable integer array, which can be used by explicitly requesting the dtype: In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float640 Ngoài ra, có thể sử dụng bí danh chuỗi #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
54 (lưu ý viết hoa #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
55)Xem Kiểu dữ liệu số nguyên không thể để biết thêm. Ngày giờ#Đối với các loại datetime64[ns], #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
56 đại diện cho các giá trị bị thiếu. Đây là một giá trị sentinel gốc giả có thể được đại diện bởi NumPy trong một dtype số ít (datetime64[ns]). các đối tượng gấu trúc cung cấp khả năng tương thích giữa #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
56 và In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float646 Chèn dữ liệu bị thiếu#Bạn có thể chèn các giá trị bị thiếu bằng cách chỉ định cho các vùng chứa. Giá trị thiếu thực tế được sử dụng sẽ được chọn dựa trên dtype Ví dụ: vùng chứa số sẽ luôn sử dụng In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 bất kể loại giá trị bị thiếu đã chọn In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float64 Tương tự như vậy, các thùng chứa datetime sẽ luôn sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
56Đối với các thùng chứa đối tượng, gấu trúc sẽ sử dụng giá trị đã cho In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object Phép tính thiếu dữ liệu#Các giá trị bị thiếu lan truyền tự nhiên thông qua các phép toán số học giữa các đối tượng gấu trúc #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
5Số liệu thống kê mô tả và phương pháp tính toán được thảo luận trong tổng quan về cấu trúc dữ liệu (và được liệt kê tại đây . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. . Ví dụ. and here) are all written to account for missing data. For example:
In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object2 Tổng/sản lượng trống/nans#Cảnh báo Hành vi này hiện là tiêu chuẩn kể từ phiên bản v0. 22. 0 và phù hợp với mặc định trong In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object24; . Xem v0. 22. 0 whatsnew để biết thêm. Tổng của Sê-ri hoặc cột trống hoặc toàn NA của DataFrame là 0 #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
00Sản phẩm của Sê-ri hoặc cột trống hoặc toàn NA của DataFrame là 1 #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
01Giá trị NA trong GroupBy#Các nhóm NA trong GroupBy sẽ tự động bị loại trừ. Hành vi này phù hợp với R, ví dụ #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
02Xem phần theo nhóm tại đây để biết thêm thông tin. Dọn dẹp/điền dữ liệu bị thiếu#các đối tượng gấu trúc được trang bị nhiều phương pháp thao tác dữ liệu khác nhau để xử lý dữ liệu bị thiếu Điền các giá trị còn thiếu. điền vào #In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object25 có thể “điền vào” các giá trị NA bằng dữ liệu không phải NA theo một số cách mà chúng tôi minh họa Thay thế NA bằng một giá trị vô hướng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
03Điền vào các khoảng trống về phía trước hoặc phía sau Sử dụng các đối số điền tương tự như lập chỉ mục lại , chúng tôi có thể truyền các giá trị không phải NA về phía trước hoặc phía sau. #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
04Hạn chế lượng đổ đầy Nếu chúng tôi chỉ muốn các khoảng trống liên tiếp được lấp đầy đến một số điểm dữ liệu nhất định, chúng tôi có thể sử dụng từ khóa In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object26 #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
05Để nhắc nhở bạn, đây là các phương pháp điền có sẵn Phương pháp Hoạt động đệm / điền vào Điền giá trị về phía trước bfill/chèn lấp Điền ngược giá trị Với dữ liệu chuỗi thời gian, việc sử dụng pad/fill là cực kỳ phổ biến để "giá trị đã biết cuối cùng" luôn có sẵn tại mọi thời điểm In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object27 tương đương với In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object28 và In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object29 tương đương với #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
000Điền vào một PandasObject#Bạn cũng có thể điền vào bằng cách sử dụng một lệnh hoặc Sê-ri có thể căn chỉnh. Các nhãn của lệnh hoặc chỉ mục của Sê-ri phải khớp với các cột của khung bạn muốn điền. Trường hợp sử dụng của việc này là điền vào DataFrame với giá trị trung bình của cột đó #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
06Kết quả tương tự như trên, nhưng đang căn chỉnh giá trị 'điền' là Sê-ri trong trường hợp này #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
07Bỏ nhãn trục với dữ liệu bị thiếu. dropna#Bạn có thể chỉ muốn loại trừ các nhãn khỏi tập dữ liệu đề cập đến dữ liệu bị thiếu. Để làm điều này, hãy sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
001#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
08Có sẵn một #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
001 tương đương cho Sê-ri. Khung dữ liệu. dropna có nhiều tùy chọn hơn đáng kể so với Series. dropna, có thể được kiểm tra trong API . nội suy #Cả hai đối tượng Sê-ri và DataFrame đều có #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
003, theo mặc định, thực hiện phép nội suy tuyến tính tại các điểm dữ liệu bị thiếu#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
09#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
60Nội suy nhận biết chỉ mục có sẵn thông qua từ khóa #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
004#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
61Đối với chỉ mục dấu phẩy động, hãy sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
005#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
62Bạn cũng có thể nội suy với DataFrame #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
63Đối số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
004 cung cấp quyền truy cập vào các phương pháp nội suy huyền ảo hơn. Nếu bạn đã cài đặt scipy, bạn có thể chuyển tên của quy trình nội suy 1-d cho #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
004. Bạn sẽ muốn tham khảo tài liệu nội suy scipy đầy đủ và hướng dẫn tham khảo để biết chi tiết. Phương pháp nội suy thích hợp sẽ phụ thuộc vào loại dữ liệu bạn đang làm việc với
Cảnh báo Những phương pháp này yêu cầu #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
011#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
64Khi nội suy thông qua phép xấp xỉ đa thức hoặc hàm spline, bạn cũng phải chỉ định bậc hoặc thứ tự của phép xấp xỉ #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
65So sánh một số phương pháp #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
66Một trường hợp sử dụng khác là nội suy tại các giá trị mới. Giả sử bạn có 100 quan sát từ một số phân phối. Và giả sử rằng bạn đặc biệt quan tâm đến những gì đang xảy ra ở giữa. Bạn có thể kết hợp các phương thức #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
012 và #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
013 của gấu trúc để nội suy ở các giá trị mới#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
67Giới hạn nội suy#Giống như các phương thức điền pandas khác, #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
003 chấp nhận đối số từ khóa In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object26. Sử dụng đối số này để giới hạn số lượng giá trị In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 liên tiếp được điền kể từ lần quan sát hợp lệ cuối cùng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
68Theo mặc định, giá trị In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 được điền theo hướng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
018. Sử dụng tham số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
019 để điền vào #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
020 hoặc từ hướng dẫn của #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
021#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
69Theo mặc định, các giá trị In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 được điền cho dù chúng ở bên trong (được bao quanh bởi) các giá trị hợp lệ hiện có hay bên ngoài các giá trị hợp lệ hiện có. Tham số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
023 hạn chế điền giá trị bên trong hoặc bên ngoài#replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
80Thay thế các giá trị chung #Thông thường, chúng tôi muốn thay thế các giá trị tùy ý bằng các giá trị khác #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
024 trong Sê-ri và #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
024 trong DataFrame cung cấp một cách hiệu quả nhưng linh hoạt để thực hiện các thay thế đóĐối với Sê-ri, bạn có thể thay thế một giá trị hoặc danh sách các giá trị bằng một giá trị khác #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
81Bạn có thể thay thế một danh sách các giá trị bằng một danh sách các giá trị khác #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
82Bạn cũng có thể chỉ định một lệnh ánh xạ #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
83Đối với DataFrame, bạn có thể chỉ định các giá trị riêng lẻ theo cột #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
84Thay vì thay thế bằng các giá trị đã chỉ định, bạn có thể coi tất cả các giá trị đã cho là thiếu và nội suy trên chúng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
85Thay thế chuỗi/biểu thức chính quy#Ghi chú Chuỗi Python có tiền tố là ký tự #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
026 chẳng hạn như #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
027 được gọi là chuỗi "thô". Chúng có ngữ nghĩa khác nhau về dấu gạch chéo ngược so với các chuỗi không có tiền tố này. Dấu gạch chéo ngược trong chuỗi thô sẽ được hiểu là dấu gạch chéo ngược đã thoát, e. g. , #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
028. Bạn nên đọc về chúng nếu điều này không rõ ràngThay thế cái '. ’ với In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float648 (str -> str) #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
86Bây giờ hãy làm điều đó với một biểu thức chính quy loại bỏ khoảng trắng xung quanh (regex -> regex) #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
87Thay thế một vài giá trị khác nhau (danh sách -> danh sách) #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
88danh sách regex -> danh sách regex #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
89Chỉ tìm kiếm trong cột #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
030 (dict -> dict)In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6400 Tương tự như ví dụ trước, nhưng thay vào đó hãy sử dụng biểu thức chính quy để tìm kiếm (dict của regex -> dict) In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6401 Bạn có thể chuyển các từ điển lồng nhau của các biểu thức chính quy sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
031In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6402 Ngoài ra, bạn có thể chuyển từ điển lồng nhau như vậy In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6403 Bạn cũng có thể sử dụng nhóm đối sánh biểu thức chính quy khi thay thế (dict of regex -> dict of regex), điều này cũng hoạt động cho các danh sách In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6404 Bạn có thể chuyển một danh sách các biểu thức chính quy, trong đó những biểu thức phù hợp sẽ được thay thế bằng vô hướng (danh sách biểu thức chính quy -> biểu thức chính quy) In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6405 Tất cả các ví dụ về biểu thức chính quy cũng có thể được chuyển với đối số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
032 làm đối số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
033. Trong trường hợp này, đối số #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
034 phải được truyền rõ ràng theo tên hoặc #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
033 phải là một từ điển lồng nhau. Ví dụ trước, trong trường hợp này, sau đó sẽ làIn [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6406 Điều này có thể thuận tiện nếu bạn không muốn vượt qua #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
031 mỗi khi bạn muốn sử dụng biểu thức chính quyGhi chú Bất cứ nơi nào trong các ví dụ về #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
037 ở trên mà bạn thấy một biểu thức chính quy, một biểu thức chính quy được biên dịch cũng hợp lệThay thế số ##replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
024 tương tự như In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object25 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6407 Có thể thay thế nhiều hơn một giá trị bằng cách chuyển một danh sách In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6408 Bạn cũng có thể thao tác trên DataFrame tại chỗ In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6409 Thiếu quy tắc truyền dữ liệu và lập chỉ mục#Mặc dù gấu trúc hỗ trợ lưu trữ các mảng kiểu số nguyên và kiểu boolean, nhưng các kiểu này không có khả năng lưu trữ dữ liệu bị thiếu. Cho đến khi chúng tôi có thể chuyển sang sử dụng loại NA gốc trong NumPy, chúng tôi đã thiết lập một số "quy tắc truyền". Khi thao tác lập chỉ mục lại giới thiệu dữ liệu bị thiếu, Sê-ri sẽ được truyền theo các quy tắc được giới thiệu trong bảng bên dưới loại dữ liệu Truyền tới số nguyên trôi nổi boolean vật trôi nổi không có diễn viên vật không có diễn viên Ví dụ In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6460 Thông thường, NumPy sẽ phàn nàn nếu bạn cố gắng sử dụng một mảng đối tượng (ngay cả khi nó chứa các giá trị boolean) thay vì một mảng boolean để lấy hoặc đặt các giá trị từ một ndarray (e. g. lựa chọn các giá trị dựa trên một số tiêu chí). Nếu một vectơ boolean chứa NA, một ngoại lệ sẽ được tạo In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6461 Tuy nhiên, những điều này có thể được điền bằng cách sử dụng In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object25 và nó sẽ hoạt động tốt In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6462 pandas cung cấp một dtype số nguyên nullable, nhưng bạn phải yêu cầu nó một cách rõ ràng khi tạo chuỗi hoặc cột. Lưu ý rằng chúng tôi sử dụng chữ “I” viết hoa trong #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
041In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6463 Xem Kiểu dữ liệu số nguyên không thể để biết thêm. Thử nghiệm vô hướng In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float64 9 để biểu thị các giá trị bị thiếu#Cảnh báo Thực nghiệm. hành vi của #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 vẫn có thể thay đổi mà không cần cảnh báoMới trong phiên bản 1. 0. 0 Bắt đầu từ pandas 1. 0, một giá trị #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 thử nghiệm (singleton) có sẵn để biểu thị các giá trị vô hướng bị thiếu. Tại thời điểm này, nó được sử dụng trong số nguyên nullable, boolean và chuỗi chuyên dụng data types as the missing value indicator.Mục tiêu của #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 là cung cấp một chỉ báo “còn thiếu” có thể được sử dụng nhất quán trên các loại dữ liệu (thay vì #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
51, In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object1 hoặc #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
048 tùy thuộc vào loại dữ liệu)Ví dụ: khi có các giá trị bị thiếu trong Sê-ri có dtype số nguyên nullable, nó sẽ sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6464 Hiện tại, pandas chưa sử dụng các loại dữ liệu đó theo mặc định (khi tạo DataFrame hoặc Sê-ri hoặc khi đọc dữ liệu), vì vậy bạn cần chỉ định rõ ràng loại dtype. Một cách dễ dàng để chuyển đổi sang các dtype đó được giải thích tại đây . Tuyên truyền trong các hoạt động số học và so sánh #Nói chung, các giá trị bị thiếu lan truyền trong các hoạt động liên quan đến #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043. Khi một trong các toán hạng không xác định, kết quả của hoạt động cũng không xác địnhVí dụ: #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 lan truyền trong các phép toán số học, tương tự như #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
51In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6465 Có một vài trường hợp đặc biệt khi biết trước kết quả, ngay cả khi một trong các toán hạng là In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float649 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6466 Trong các hoạt động so sánh và bình đẳng, #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 cũng tuyên truyền. Điều này khác với hành vi của #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
51, trong đó so sánh với #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
51 luôn trả về #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
057In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6467 Để kiểm tra xem một giá trị có bằng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 hay không, có thể sử dụng hàm In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object5 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6468 Một ngoại lệ đối với quy tắc lan truyền cơ bản này là các phép giảm (chẳng hạn như giá trị trung bình hoặc giá trị tối thiểu), trong đó gấu trúc mặc định bỏ qua các giá trị bị thiếu. Xem ở trên để biết thêm. Các phép toán logic#Đối với các hoạt động logic, #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 tuân theo các quy tắc của logic ba giá trị (hoặc logic Kleene, tương tự như R, SQL và Julia). Logic này có nghĩa là chỉ truyền các giá trị bị thiếu khi nó được yêu cầu về mặt logicVí dụ: đối với phép toán logic “or” ( #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
061), nếu một trong các toán hạng là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
062, thì chúng ta đã biết kết quả sẽ là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
062, bất kể giá trị khác là gì (do đó, bất kể giá trị bị thiếu sẽ là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
062 hay #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
057). Trong trường hợp này, #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 không lan truyềnIn [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float6469 Mặt khác, nếu một trong các toán hạng là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
057, kết quả sẽ phụ thuộc vào giá trị của toán hạng kia. Do đó, trong trường hợp này, #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 tuyên truyềnIn [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float640 Hành vi của phép toán logic “và” ( #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
069) có thể được bắt nguồn bằng cách sử dụng logic tương tự (hiện tại #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 sẽ không lan truyền nếu một trong các toán hạng đã là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
057)In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float641 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float642 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float64 9 trong ngữ cảnh boolean#Vì giá trị thực của NA là không xác định nên việc chuyển đổi NA thành giá trị boolean là không rõ ràng. Sau đây gây ra một lỗi In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float643 Điều này cũng có nghĩa là không thể sử dụng #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 trong ngữ cảnh khi nó được đánh giá theo giá trị boolean, chẳng hạn như #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
074 trong đó #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
075 có thể có khả năng là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043. Trong những trường hợp như vậy, có thể sử dụng In [24]: s = pd.Series(["a", "b", "c"]) In [25]: s.loc[0] = None In [26]: s.loc[1] = np.nan In [27]: s Out[27]: 0 None 1 NaN 2 c dtype: object5 để kiểm tra #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043 hoặc có thể tránh được #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
075 là #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
043, ví dụ bằng cách điền trước các giá trị còn thiếuTình huống tương tự cũng xảy ra khi sử dụng các đối tượng Sê-ri hoặc DataFrame trong câu lệnh #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
081, xem Sử dụng câu lệnh if/truth với gấu trúc . NumPy ufuncs##replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
082 triển khai giao thức #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
083 của NumPy. Hầu hết các ufunc đều hoạt động với In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float649 và thường trả về In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float649 In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float644 Cảnh báo Hiện tại, các ufunc liên quan đến ndarray và In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float649 sẽ trả về một object-dtype chứa đầy các giá trị NA In [21]: s = pd.Series([1, 2, 3]) In [22]: s.loc[0] = None In [23]: s Out[23]: 0 NaN 1 2.0 2 3.0 dtype: float645 Kiểu trả về ở đây có thể thay đổi để trả về một kiểu mảng khác trong tương lai Xem Khả năng tương tác của DataFrame với các hàm NumPy để biết thêm về ufunc. chuyển đổi ##replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
090 and #replace all NaN values with None
df = df.replace(np.nan, None)
#view updated DataFrame
print(df)
A B C D
0 5.0 None 2.0 5.0
1 6.0 12.0 7.0 None
2 8.0 None 6.0 6.0
3 None 10.0 3.0 15.0
4 4.0 23.0 2.0 1.0
5 15.0 6.0 4.0 None
6 13.0 4.0 None 4.0
091 infer default dtypes.Trong ví dụ này, trong khi kiểu chữ của tất cả các cột được thay đổi, chúng tôi hiển thị kết quả cho 10 cột đầu tiên |