Đôi khi DataFrame chứa một cột trống và có thể đặt ra một vấn đề thực sự trong kịch bản thực tế. Thiếu dữ liệu cũng có thể gọi là giá trị NA (không có sẵn) trong gấu trúc. Trong DataFrame đôi khi nhiều bộ dữ liệu chỉ đơn giản là đến với dữ liệu bị thiếu, vì nó tồn tại và không được thu thập hoặc nó không bao giờ tồn tại. Trong bài viết này, hãy để Lừa xem cách điền vào các cột trống trong DataFrame bằng gấu trúc.
Lưu ý: Liên kết của tệp CSV ở đây.Link of csv file here.
Điền vào cột trống:
Python3
import pandas as pd
df = pd.read_csv("Persons.csv"____10
person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 1
Đầu tiên, chúng tôi nhập gấu trúc sau đó chúng tôi tải tệp CSV của chúng tôi trong biến DF. Chỉ cần cố gắng chạy điều này trong Notebook Jupyter hoặc Colab.
Output:
Python3
person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 2person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 3person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 4=person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 6person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 0
person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 1
Dòng này được sử dụng để loại bỏ giá trị chỉ mục, chúng tôi không muốn điều đó, vì vậy chúng tôi xóa nó.
Output:
Có một số phương pháp được sử dụng để lấp đầy các cột trống. Chúng tôi sẽ thấy nó từng cái một
Phương pháp 1:
Trong phương pháp này, chúng tôi sẽ sử dụng DF.Fillna (0), thay thế tất cả các phần tử NAN bằng 0s.eplace all NaN elements with 0s.
Example:
Python3
Output:
Phương pháp 2:
Trong phương pháp này, chúng tôi sẽ sử dụng DF.Fillna (Phương thức = Hồi ffill,), được sử dụng để truyền các giá trị không null về phía trước hoặc lùi.propagate non-null values forward or backward.
Cú pháp: dataFrame.fillna (value = none, phương thức = none, trục = không, inplace = false, giới hạn = không, downcast = none) & nbsp;DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
Python3
person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 9= df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 1=df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 3person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 none 0
df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 5
Output:
Phương pháp 3:
Trong phương pháp này, chúng tôi sẽ sử dụng DF.Interpolate () và & nbsp;
Cú pháp: dataFrame.Interpolate (Phương thức = Tiết tuyến tính, Axis = 0, Limited = none, inplace = false, giới hạn_direction = none, Limited_area = none, Downcast = none, ** kwargs)DataFrame.interpolate(method=’linear’, axis=0, limit=None, inplace=False, limit_direction=None, limit_area=None, downcast=None, **kwargs)
Python3
df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 6= df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 8
df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none' 9
Output:
Có một khung dữ liệu bao gồm một người và đơn đặt hàng ...
person order elements Alice [drink, snack, salad, fish, dessert] 5 Tom [drink, snack] 2 John [drink, snack, soup, chicken] 4 Mila [drink, snack, soup] 3Tôi muốn biết những gì khách hàng có là một bữa ăn chính. Vì vậy, tôi muốn thêm một cột khác [main_meal] để đó là DF của tôi.
person order elements main_meal Alice [drink, snack, salad, fish, dessert] 5 fish Tom [drink, snack] 2 none John [drink, snack, soup, chicken] 4 chicken Mila [drink, snack, soup] 3 noneQuy tắc là nếu khách hàng đặt hàng 4 bữa ăn trở lên, điều đó có nghĩa là yếu tố thứ 4 luôn là món ăn chính, vì vậy tôi muốn trích xuất phần tử thứ 4 từ danh sách trên cột đặt hàng. Nếu nó chứa ít hơn 4 phần tử, thì hãy gán 'main_meal' cho không. Mã của tôi:
df['main_meal'] = '' if df['elements'] >= 4: df['main_meal'] = df.order[3] else: df['main_meal'] = 'none'Nó không hoạt động:
ValueError Traceback (most recent call last) <ipython-input-100-39b7809cc669> in <module>() 1 df['main_meal'] = '' 2 df.head(5) ----> 3 if df['elements'] >= 4: 4 df['main_meal'] = df.order[3] 5 else: ~\Anaconda\lib\site-packages\pandas\core\generic.py in __nonzero__(self) 1571 raise ValueError("The truth value of a {0} is ambiguous. " 1572 "Use a.empty, a.bool(), a.item(), a.any() or a.all()." -> 1573 .format(self.__class__.__name__)) 1574 1575 __bool__ = __nonzero__ ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().Có gì sai với mã của tôi?