Thay vì lặp lại điều này, bạn chỉ có thể sử dụng >>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64') 4 [pandas-doc] trên cột, như:>>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64') 4 [pandas-doc] on the column, like:
>>> df 0 0 A 1 FAT 2 NaN 3 TAH >>> df[0].str.contains('A') 0 True 1 True 2 NaN 3 True Name: 0, dtype: objectSau đó, bạn có thể lọc ví dụ hoặc, lấy các chỉ số:
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64')Hoặc chúng ta có thể sử dụng >>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64') 5 thay vì >>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64') 6:
>>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64')hoặc lọc trong >>> df[df[0].str.contains('A').notna()] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A').notna()] Int64Index([0, 1, 3], dtype='int64') 7 như @erfan nói:
>>> df[df[0].str.contains('A', na=False)] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A', na=False)] Int64Index([0, 1, 3], dtype='int64')Vì vậy, bạn có thể in các giá trị bằng:
for val in df[df[0].str.contains('A') == True][0]: print('A found in {}'.format(val))Điều này mang lại cho chúng tôi:
>>> for val in df[df[0].str.contains('A') == True][0]: ... print('A found in {}'.format(val)) ... A found in A A found in FAT A found in TAHBởi Bernd Klein. Sửa đổi lần cuối: 24 tháng 3 năm 2022.Bernd Klein. Last modified: 24 Mar 2022.
Trên trang này➤
Giới thiệu
NAN đã được giới thiệu, ít nhất là chính thức, theo tiêu chuẩn của IEEE cho số học nổi (IEEE 754). Đây là một tiêu chuẩn kỹ thuật để tính toán điểm nổi được thiết lập vào năm 1985 - nhiều năm trước khi Python được phát minh, và thậm chí cả thời gian dài hơn cho Pandas được tạo ra - bởi Viện Kỹ sư Điện và Điện tử (IEEE). Nó đã được giới thiệu để giải quyết các vấn đề được tìm thấy trong nhiều triển khai điểm nổi khiến chúng khó sử dụng một cách đáng tin cậy và một cách đáng tin cậy.
Tiêu chuẩn này đã thêm NAN vào các định dạng số học: "Các định dạng số học: Các bộ dữ liệu dấu phẩy động nhị phân và thập phân, bao gồm các số hữu hạn (bao gồm các số không có chữ ký và số dưới mức), tính không đồng nhất và các giá trị 'không phải là số' (NAN) đặc biệt (NAN) "
'nan' trong Python
Python cũng biết các giá trị NAN. Chúng ta có thể tạo nó bằng "float":
n1 = float("nan") n2 = float("Nan") n3 = float("NaN") n4 = float("NAN") print(n1, n2, n3, n4)
OUTPUT:
"NAN" cũng là một phần của mô -đun toán học kể từ Python 3.5:
import math n1 = math.nan print(n1) print(math.isnan(n1))
OUTPUT:
Cảnh báo: Không thực hiện so sánh giữa các giá trị "NAN" hoặc các giá trị "NAN" và số thông thường. Một lý luận đơn giản hoặc đơn giản là thế này: hai điều "không phải là một số", vì vậy chúng có thể là bất cứ điều gì nhưng hầu hết có lẽ không giống nhau. Trên hết, không có cách nào để đặt hàng nans:
print(n1 == n2) print(n1 == 0) print(n1 == 100) print(n2 < 0)
OUTPUT:
Nan trong gấu trúc
Ví dụ mà không có nans
Trước khi chúng tôi làm việc với dữ liệu NAN, chúng tôi sẽ xử lý một tệp mà không có bất kỳ giá trị NAN nào. Nhiệt độ tệp dữ liệu.CSV chứa dữ liệu nhiệt độ của sáu cảm biến được thực hiện cứ sau 15 minut trong khoảng thời gian từ 6:00 đến 19,15 giờ.
Đọc trong tệp dữ liệu có thể được thực hiện với chức năng read_csv:
import pandas as pd df = pd.read_csv("../data1/temperatures.csv", sep=";", decimal=",", index_col=0) df[:5]
14.3 | 13.7 | 14.2 | 14.3 | 13.5 | 13.6 |
14.5 | 14.5 | 14.0 | 15.0 | 14.5 | 14.7 |
14.6 | 15.1 | 14.8 | 15.3 | 14.0 | 14.2 |
14.8 | 14.5 | 15.6 | 15.2 | 14.7 | 14.6 |
15.0 | 14.9 | 15.7 | 15.6 | 14.0 | 15.3 |
Đào tạo Python sống
OUTPUT:
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 0
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 1
OUTPUT:
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 2
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 3
OUTPUT:
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 4
Các khóa học trực tuyến sắp tới
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 5
13.933333 |
14.533333 |
14.666667 |
Đào tạo Python sống
Các khóa học trực tuyến sắp tới
Ghi danh ở đây
Làm thế nào để bạn bỏ qua Nan trong Python?
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 6
14.3 | 13.7 | 14.2 | 14.3 | 13.5 | 13.6 |
14.5 | 14.5 | 14.0 | 15.0 | 14.5 | 14.7 |
14.6 | 15.1 | 14.8 | 15.3 | 14.0 | 14.2 |
14.8 | 14.5 | 15.6 | 15.2 | 14.7 | 14.6 |
15.0 | 14.9 | 15.7 | 15.6 | 14.0 | 15.3 |
15.2 | 15.2 | 14.6 | 15.3 | 15.5 | 14.9 |
15.4 | 15.3 | 15.6 | 15.6 | 14.7 | 15.1 |
15.5 | 14.8 | 15.4 | 15.5 | 14.6 | 14.9 |
Đào tạo Python sống
Trước khi chúng tôi tiếp tục với nhiệm vụ của mình, chúng tôi sẽ chứng minh cách làm việc với một số ví dụ đơn giản:
s = pd.series (phạm vi (5)) s.where (s> 0)
>>> df[df[0].str.contains('A') == True] 0 0 A 1 FAT 3 TAH >>> df.index[df[0].str.contains('A') == True] Int64Index([0, 1, 3], dtype='int64') 7
18 | -27 |
14 | -23 |
28 | -21 |
6 | -23 |
Đối với nhiệm vụ của chúng tôi, chúng tôi cần tạo DataFrame 'NAN_DF', bao gồm các giá trị NAN hoàn toàn và có hình dạng giống như DataFrame 'TEMP_DF của chúng tôi. Chúng tôi sẽ sử dụng DataFrame này trong 'WHERE'. Chúng tôi cũng cần một khung dữ liệu với các điều kiện "df_bool" là giá trị thực. Đối với mục đích này, chúng tôi sẽ tạo một khung dữ liệu với các giá trị ngẫu nhiên trong khoảng từ 0 đến 1 và bằng cách áp dụng 'Random_df