Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Bộ dữ liệu là một tập hợp các thuộc tính và hàng. Bộ dữ liệu có thể có dữ liệu bị thiếu được biểu thị bởi NA trong Python và trong bài viết này, chúng tôi sẽ thay thế các giá trị bị thiếu trong bài viết này
Chúng tôi xem xét bộ dữ liệu này: Bộ dữ liệu
bộ dữ liệu
Approach:
- Trong dữ liệu của chúng tôi chứa các giá trị bị thiếu về số lượng, giá cả, mua, buổi sáng và các cột buổi chiều,
- Vì vậy, chúng ta có thể thay thế các giá trị bị thiếu trong cột số lượng bằng cột trung bình, giá bằng cột trung bình, mua với độ lệch chuẩn. Cột forenoon với giá trị tối thiểu trong cột đó. Cột buổi chiều với giá trị tối đa trong cột đó.
- Nhập mô -đun
- Tải dữ liệu đặt
Syntax:
Điền vào các giá trị bị thiếudata=data.fillna[data.mean[]]
Xác minh bộ dữ liệudata=data.fillna[data.median[]]
Trung bình: data = data.fillna [data.mean []]data=data.fillna[data.std[]]
Median: data = data.fillna [data.median []]data=data.fillna[data.min[]]
Độ lệch chuẩn: data = data.fillna [data.std []]data=data.fillna[data.max[]]
Min: data = data.fillna [data.min []]
Python3
Tối đa: data = data.fillna [data.max []]
Dưới đây là việc thực hiện:
import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
0 import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
1Output:
import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
2import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
3 import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
4import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
5import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
6Python3
import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
7import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
8Sau đó, sau khi chúng tôi sẽ tiến hành thay thế các giá trị bị thiếu bằng giá trị trung bình, trung bình, chế độ, độ lệch chuẩn, tối thiểu & tối đa
import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
0#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
1import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
3 import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
0#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
5____________#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
7import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
1import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
3 import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
9#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
5#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
9df['C'].fillna[df['C'].mode[][0], inplace=True]
6import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9df['C'].fillna[df['C'].mode[][0], inplace=True]
8#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
1import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
3 import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
9df['C'].fillna[df['C'].mode[][0], inplace=True]
8#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
5df['C'].fillna[df['C'].mode[][0], inplace=True]
8for i in df.columns:
df[i].fillna[df[i].mode[][0], inplace=True]
print[df]
5import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
7df.fillna[method='ffill', inplace=True]
9
Output:
Làm sạch dữ liệu chắc chắn mất rất nhiều thời gian trong khoa học dữ liệu và dữ liệu bị thiếu là một trong những thách thức mà bạn thường gặp phải. Pandas là một công cụ thao tác dữ liệu Python có giá trị giúp bạn khắc phục các giá trị bị thiếu trong bộ dữ liệu của bạn, trong số những thứ khác.
Bạn có thể sửa dữ liệu bị thiếu bằng cách thả hoặc điền chúng với các giá trị khác. Trong bài viết này, chúng tôi sẽ giải thích và khám phá các cách khác nhau để điền vào dữ liệu bị thiếu bằng gấu trúc.
1. Sử dụng phương thức fillna []:
Hàm fillna [] lặp lại thông qua bộ dữ liệu của bạn và lấp đầy tất cả các hàng null với một giá trị được chỉ định. Nó chấp nhận một số đối số tùy chọn, ghi chú của các đối số sau: fillna[] function iterates through your dataset and fills all null rows with a specified value. It accepts some optional arguments—take note of the following ones:
Giá trị: Đây là giá trị bạn muốn chèn vào các hàng bị thiếu.: This is the value you want to insert into the missing rows.
Phương pháp: Cho phép bạn điền vào các giá trị bị thiếu về phía trước hoặc ngược lại. Nó chấp nhận tham số 'bfill' hoặc 'ffill'.: Lets you fill missing values forward or in reverse. It accepts a 'bfill' or 'ffill' parameter.
Tại chỗ: Điều này chấp nhận một tuyên bố có điều kiện. Nếu đúng, nó sửa đổi dữ liệu vĩnh viễn. Nếu không, nó không.: This accepts a conditional statement. If True, it modifies the DataFrame permanently. Otherwise, it doesn't.
Trước khi chúng tôi bắt đầu, hãy đảm bảo bạn cài đặt gấu trúc vào môi trường ảo Python của mình bằng PIP trong thiết bị đầu cuối của bạn:pip in your terminal:
pip install pandas
Tiếp theo, bên trong tập lệnh Python, chúng tôi sẽ tạo một DataFrame thực hành và chèn các giá trị null [NAN] vào một số hàng:Nan] into some rows:
import pandas
df = pandas.DataFrame[{'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]}]
Bây giờ, hãy xem cách bạn có thể điền vào các giá trị bị thiếu này bằng các phương thức có sẵn khác nhau trong gấu trúc.
Điền vào các giá trị bị thiếu bằng giá trị trung bình, trung bình hoặc chế độ
Phương pháp này liên quan đến việc thay thế các giá trị bị thiếu bằng trung bình được tính toán. Việc điền vào dữ liệu bị thiếu bằng giá trị trung bình hoặc trung bình được áp dụng khi các cột liên quan có các loại dữ liệu số nguyên hoặc float.
Bạn cũng có thể điền vào dữ liệu bị thiếu bằng giá trị chế độ, đây là giá trị xảy ra nhất. Điều này cũng được áp dụng cho số nguyên hoặc phao. Nhưng nó thuận tiện hơn khi các cột trong câu hỏi có chứa các chuỗi.
Đây là cách chèn trung bình và trung bình vào các hàng bị thiếu trong DataFrame bạn đã tạo trước đó:
#To insert the mean value of each column into its missing rows:
df.fillna[df.mean[].round[1], inplace=True]
#For median:strong>
df.fillna[df.median[].round[1], inplace=True]
print[df]
Chèn giá trị phương thức như bạn đã làm cho giá trị trung bình và trung bình ở trên không nắm bắt được toàn bộ khung dữ liệu. Nhưng bạn có thể chèn nó vào một cột cụ thể thay thế, giả sử, cột C:C:
df['C'].fillna[df['C'].mode[][0], inplace=True]
Như đã nói, vẫn có thể chèn giá trị phương thức của mỗi cột trên các hàng bị thiếu cùng một lúc bằng cách sử dụng một vòng lặp:
for i in df.columns:
df[i].fillna[df[i].mode[][0], inplace=True]
print[df]
Nếu bạn muốn được đặc trưng cho cột trong khi chèn trung bình, trung bình hoặc chế độ:
df.fillna[{"A":df['A'].mean[],
"B": df['B'].median[],
"C": df['C'].mode[][0]},
inplace=True]
print[df]
Lấp đầy các hàng null bằng các giá trị bằng cách sử dụng ffill
Điều này liên quan đến việc chỉ định phương thức điền bên trong là hàm fillna []. Phương thức này lấp đầy từng hàng bị thiếu với giá trị của hàng gần nhất ở trên nó.fillna[] function. This method fills each missing row with the value of the nearest one above it.
Bạn cũng có thể gọi nó là Forward Filling:
df.fillna[method='ffill', inplace=True]
Điền vào các hàng bị thiếu bằng các giá trị bằng bfill
Ở đây, bạn sẽ thay thế phương thức ffill được đề cập ở trên bằng bfill. Nó lấp đầy từng hàng bị thiếu trong khung dữ liệu với giá trị gần nhất bên dưới nó.ffill method mentioned above with bfill. It fills each missing row in the DataFrame with the nearest value below it.
Cái này được gọi là điền lạc hậu:
df.fillna[method='bfill', inplace=True]
2. Phương thức thay thế []
Bạn có thể thay thế các giá trị NAN trong một cột cụ thể bằng giá trị trung bình, trung bình, chế độ hoặc bất kỳ giá trị nào khác.Nan values in a specific column with the mean, median, mode, or any other value.
Xem cách thức hoạt động bằng cách thay thế các hàng null trong một cột được đặt tên bằng giá trị trung bình, trung bình hoặc chế độ của nó:
import pandas
import numpy #this requires that you've previously installed numpy
#Replace the null values with the mean:
df['A'].replace[[numpy.nan], df[A].mean[], inplace=True]
#Replace column A with the median:
df['B'].replace[[numpy.nan], df[B].median[], inplace=True]
#Use the modal value for column C:
df['C'].replace[[numpy.nan], df['C'].mode[][0], inplace=True]
print[df]
3. Điền dữ liệu bị thiếu bằng nội suy []
Hàm nội suy [] sử dụng các giá trị hiện có trong khung dữ liệu để ước tính các hàng bị thiếu.interpolate[] function uses existing values in the DataFrame to estimate the missing rows.
Chạy mã sau để xem cách thức hoạt động của nó:
#Interpolate backwardly across the column:
df.interpolate[method ='linear', limit_direction ='backward', inplace=True]
#Interpolate in forward order across the column:
df.interpolate[method ='linear', limit_direction ='forward', inplace=True]
Đối phó với các hàng bị thiếu cẩn thận
Mặc dù chúng tôi chỉ xem xét điền vào dữ liệu bị thiếu bằng các giá trị mặc định như trung bình, chế độ và các phương thức khác, các kỹ thuật khác tồn tại để sửa các giá trị bị thiếu. Các nhà khoa học dữ liệu, ví dụ, đôi khi loại bỏ các hàng bị thiếu này, tùy thuộc vào trường hợp.
Hơn nữa, điều cần thiết là phải suy nghĩ nghiêm túc về chiến lược của bạn trước khi sử dụng nó. Nếu không, bạn có thể nhận được kết quả phân tích hoặc dự đoán không mong muốn. Một số chiến lược trực quan hóa dữ liệu ban đầu có thể giúp ích.