Nắm vững nghệ thuật làm sạch dữ liệu trong Python - KDnuggets

Nắm vững nghệ thuật làm sạch dữ liệu trong Python – KDnuggets

Nút nguồn: 2939047

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
Hình ảnh của Tác giả
 

Làm sạch dữ liệu là một phần quan trọng của bất kỳ quá trình phân tích dữ liệu nào. Đây là bước giúp bạn loại bỏ lỗi, xử lý dữ liệu bị thiếu và đảm bảo rằng dữ liệu của bạn ở định dạng mà bạn có thể làm việc được. Nếu không có tập dữ liệu được làm sạch tốt, mọi phân tích tiếp theo có thể bị sai lệch hoặc không chính xác.

Bài viết này giới thiệu cho bạn một số kỹ thuật chính để làm sạch dữ liệu trong Python, sử dụng các thư viện mạnh mẽ như pandas, numpy, seaborn và matplotlib.

Trước khi đi sâu vào cơ chế làm sạch dữ liệu, hãy hiểu tầm quan trọng của nó. Dữ liệu trong thế giới thực thường lộn xộn. Nó có thể chứa các mục trùng lặp, loại dữ liệu không chính xác hoặc không nhất quán, giá trị bị thiếu, tính năng không liên quan và các giá trị ngoại lệ. Tất cả những yếu tố này có thể dẫn đến kết luận sai lệch khi phân tích dữ liệu. Điều này làm cho việc làm sạch dữ liệu trở thành một phần không thể thiếu trong vòng đời của khoa học dữ liệu.

Chúng tôi sẽ đề cập đến các nhiệm vụ làm sạch dữ liệu sau đây.
 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
Hình ảnh của Tác giả

Trước khi bắt đầu, hãy nhập các thư viện cần thiết. Chúng tôi sẽ sử dụng gấu trúc để thao tác dữ liệu, seaborn và matplotlib để trực quan hóa.

Chúng tôi cũng sẽ nhập mô-đun Python datetime để thao tác ngày.

import pandas as pd
import seaborn as sns
import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

Đầu tiên, chúng ta sẽ cần tải dữ liệu của mình. Trong ví dụ này, chúng tôi sẽ tải tệp CSV bằng pandas. Chúng tôi cũng thêm đối số dấu phân cách.

df = pd.read_csv('F:KDNuggetsKDN Mastering the Art of Data Cleaning in Pythonproperty.csv', delimiter= ';')

Tiếp theo, điều quan trọng là phải kiểm tra dữ liệu để hiểu cấu trúc của nó, loại biến chúng ta đang làm việc và liệu có bất kỳ giá trị nào bị thiếu hay không. Vì dữ liệu chúng tôi đã nhập không lớn nên chúng ta hãy xem toàn bộ tập dữ liệu.

# Look at all the rows of the dataframe
display(df)

Đây là cách tập dữ liệu trông như thế nào.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Bạn có thể thấy ngay có một số giá trị bị thiếu. Ngoài ra, các định dạng ngày không nhất quán.

Bây giờ, chúng ta hãy xem tóm tắt DataFrame bằng phương thức info().

# Get a concise summary of the dataframe
print(df.info())

Đây là đầu ra mã.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Chúng ta có thể thấy rằng chỉ có cột Square_feet không có bất kỳ giá trị NULL nào, vì vậy chúng ta sẽ phải xử lý vấn đề này bằng cách nào đó. Ngoài ra, các cột ad_date và sale_date là kiểu dữ liệu đối tượng, mặc dù đây phải là ngày.

Vị trí cột hoàn toàn trống. Chúng ta có cần nó không?

Chúng tôi sẽ chỉ cho bạn cách xử lý những vấn đề này. Chúng ta sẽ bắt đầu bằng việc học cách xóa các cột không cần thiết.

Có hai cột trong tập dữ liệu mà chúng tôi không cần trong phân tích dữ liệu của mình, vì vậy chúng tôi sẽ xóa chúng.

Cột đầu tiên là người mua. Chúng tôi không cần nó vì tên của người mua không ảnh hưởng đến việc phân tích.

Chúng tôi đang sử dụng phương thức drop() với tên cột được chỉ định. Chúng tôi đặt trục thành 1 để chỉ định rằng chúng tôi muốn xóa một cột. Ngoài ra, đối số tại chỗ được đặt thành True để chúng tôi sửa đổi DataFrame hiện có và không tạo DataFrame mới mà không có cột bị xóa.

df.drop('buyer', axis = 1, inplace = True)

Cột thứ hai chúng tôi muốn xóa là vị trí. Mặc dù việc có thông tin này có thể hữu ích nhưng đây là một cột hoàn toàn trống, vì vậy hãy xóa nó đi.

Chúng tôi thực hiện cách tiếp cận tương tự như với cột đầu tiên.

df.drop('location', axis = 1, inplace = True)

Tất nhiên, bạn có thể loại bỏ đồng thời hai cột này.

df = df.drop(['buyer', 'location'], axis=1)

Cả hai cách tiếp cận đều trả về khung dữ liệu sau.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python

Dữ liệu trùng lặp có thể xảy ra trong tập dữ liệu của bạn vì nhiều lý do và có thể làm sai lệch phân tích của bạn.

Hãy phát hiện các bản sao trong tập dữ liệu của chúng tôi. Đây là cách thực hiện.

Đoạn mã dưới đây sử dụng phương thức nhân đôi () để xem xét các bản sao trong toàn bộ tập dữ liệu. Cài đặt mặc định của nó là coi lần xuất hiện đầu tiên của một giá trị là duy nhất và những lần xuất hiện tiếp theo là trùng lặp. Bạn có thể sửa đổi hành vi này bằng cách sử dụng giữ tham số. Ví dụ: df.duplicate(keep=False) sẽ đánh dấu tất cả các bản sao là Đúng, bao gồm cả lần xuất hiện đầu tiên.

# Detecting duplicates
duplicates = df[df.duplicated()]
duplicates

Đây là đầu ra.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Hàng có chỉ mục 3 đã được đánh dấu là trùng lặp vì hàng 2 có cùng giá trị là lần xuất hiện đầu tiên của nó.

Bây giờ chúng ta cần loại bỏ các bản sao, chúng ta thực hiện với đoạn mã sau.

# Detecting duplicates
duplicates = df[df.duplicated()]
duplicates

Sản phẩm drop_duplicates() hàm xem xét tất cả các cột trong khi xác định các cột trùng lặp. Nếu chỉ muốn xem xét một số cột nhất định, bạn có thể chuyển chúng dưới dạng danh sách cho hàm này như sau: df.drop_duplicates(subset=['column1', 'column2']).

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Như bạn có thể thấy, hàng trùng lặp đã bị loại bỏ. Tuy nhiên, chỉ số vẫn giữ nguyên, thiếu chỉ số 3. Chúng tôi sẽ giải quyết vấn đề này bằng cách đặt lại các chỉ mục.

df = df.reset_index(drop=True)

Nhiệm vụ này được thực hiện bằng cách sử dụng reset_index () chức năng. Đối số drop=True được sử dụng để loại bỏ chỉ mục gốc. Nếu bạn không bao gồm đối số này, chỉ mục cũ sẽ được thêm dưới dạng cột mới trong DataFrame của bạn. Bằng cách đặt drop=True, bạn đang yêu cầu gấu trúc quên chỉ mục cũ và đặt lại về chỉ mục số nguyên mặc định.

Để thực hành, hãy cố gắng xóa các bản sao khỏi tập dữ liệu Microsoft này.

Đôi khi, loại dữ liệu có thể được đặt không chính xác. Ví dụ: cột ngày có thể được hiểu là chuỗi. Bạn cần chuyển đổi chúng thành loại thích hợp.

Trong tập dữ liệu của chúng tôi, chúng tôi sẽ thực hiện điều đó cho các cột ad_date và sale_date vì chúng được hiển thị dưới dạng kiểu dữ liệu đối tượng. Ngoài ra, ngày tháng được định dạng khác nhau trên các hàng. Chúng ta cần làm cho nó nhất quán, cùng với việc chuyển đổi nó cho phù hợp.

Cách dễ nhất là sử dụng to_datetime() phương pháp. Một lần nữa, bạn có thể thực hiện theo từng cột như minh họa bên dưới.

Khi thực hiện điều đó, chúng tôi đặt đối số dayfirst thành True vì một số ngày bắt đầu bằng ngày đầu tiên.

# Converting advertisement_date column to datetime
df['advertisement_date'] = pd.to_datetime(df['advertisement_date'], dayfirst = True) # Converting sale_date column to datetime
df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst = True)

Bạn cũng có thể chuyển đổi cả hai cột cùng lúc bằng cách sử dụng ứng dụng() phương pháp với to_datetime().

# Converting advertisement_date and sale_date columns to datetime
df[['advertisement_date', 'sale_date']] = df[['advertisement_date', 'sale_date']].apply(pd.to_datetime, dayfirst = True)

Cả hai cách tiếp cận đều cho bạn kết quả như nhau.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Bây giờ ngày ở định dạng nhất quán. Chúng tôi thấy rằng không phải tất cả dữ liệu đã được chuyển đổi. Có một giá trị NaT trong ad_date và hai giá trị trong sale_date. Điều này có nghĩa là ngày bị thiếu.

Hãy kiểm tra xem các cột có được chuyển đổi thành ngày hay không bằng cách sử dụng thông tin () phương pháp.

# Get a concise summary of the dataframe
print(df.info())

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Như bạn có thể thấy, cả hai cột đều không có định dạng datetime64[ns].

Bây giờ, hãy thử chuyển đổi dữ liệu từ TEXT sang NUMERIC trong phần này Tập dữ liệu Airbnb.

Bộ dữ liệu trong thế giới thực thường có giá trị bị thiếu. Việc xử lý dữ liệu bị thiếu là rất quan trọng vì một số thuật toán nhất định không thể xử lý các giá trị đó.

Ví dụ của chúng tôi cũng có một số giá trị bị thiếu, vì vậy hãy xem xét hai cách tiếp cận thông thường nhất để xử lý dữ liệu bị thiếu.

Xóa các hàng có giá trị bị thiếu

Nếu số lượng hàng thiếu dữ liệu không đáng kể so với tổng số quan sát thì bạn có thể cân nhắc xóa các hàng này.

Trong ví dụ của chúng tôi, hàng cuối cùng không có giá trị nào ngoại trừ feet vuông và ngày quảng cáo. Chúng tôi không thể sử dụng dữ liệu đó, vì vậy hãy xóa hàng này.

Đây là đoạn mã nơi chúng tôi chỉ ra chỉ mục của hàng.

df = df.drop(8)

DataFrame bây giờ trông như thế này.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Hàng cuối cùng đã bị xóa và DataFrame của chúng tôi giờ trông đẹp hơn. Tuy nhiên, vẫn còn một số dữ liệu bị thiếu mà chúng tôi sẽ xử lý bằng cách sử dụng phương pháp khác.

Đưa ra các giá trị còn thiếu

Nếu bạn thiếu dữ liệu đáng kể, chiến lược tốt hơn là xóa có thể là áp đặt. Quá trình này liên quan đến việc điền các giá trị còn thiếu dựa trên dữ liệu khác. Đối với dữ liệu số, các phương pháp tính toán phổ biến liên quan đến việc sử dụng thước đo xu hướng trung tâm (trung bình, trung vị, chế độ).

Trong DataFrame đã thay đổi của chúng tôi, chúng tôi có các giá trị NaT (Không phải thời gian) trong các cột ad_date và sale_date. Chúng ta sẽ gán các giá trị còn thiếu này bằng cách sử dụng bần tiện() phương pháp.

Mã sử ​​dụng fillna () phương pháp tìm và điền giá trị null bằng giá trị trung bình.

# Imputing values for numerical columns
df['advertisement_date'] = df['advertisement_date'].fillna(df['advertisement_date'].mean())
df['sale_date'] = df['sale_date'].fillna(df['sale_date'].mean())

Bạn cũng có thể làm điều tương tự trong một dòng mã. Chúng tôi sử dụng ứng dụng() để áp dụng hàm được xác định bằng cách sử dụng lambda. Tương tự như trên, hàm này sử dụng fillna ()bần tiện() cách điền các giá trị còn thiếu.

# Imputing values for multiple numerical columns
df[['advertisement_date', 'sale_date']] = df[['advertisement_date', 'sale_date']].apply(lambda x: x.fillna(x.mean()))

Đầu ra trong cả hai trường hợp trông như thế này.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Cột sale_date của chúng tôi hiện có những thời điểm mà chúng tôi không cần. Hãy loại bỏ chúng.

Chúng tôi sẽ sử dụng strftime () phương thức chuyển đổi ngày tháng thành biểu diễn chuỗi và định dạng cụ thể.

df['sale_date'] = df['sale_date'].dt.strftime('%Y-%m-%d')

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Ngày giờ bây giờ trông tất cả đều gọn gàng.

Nếu bạn cần sử dụng strftime () trên nhiều cột, bạn có thể sử dụng lại lambda cách sau đây.

df[['date1_formatted', 'date2_formatted']] = df[['date1', 'date2']].apply(lambda x: x.dt.strftime('%Y-%m-%d'))

Bây giờ, hãy xem cách chúng ta có thể quy các giá trị phân loại bị thiếu.

Dữ liệu phân loại là một loại dữ liệu được sử dụng để nhóm thông tin có đặc điểm tương tự. Mỗi nhóm này là một thể loại. Dữ liệu phân loại có thể mang các giá trị số (chẳng hạn như “1” biểu thị “nam” và “2” biểu thị “nữ”), nhưng những con số đó không có ý nghĩa toán học. Ví dụ: bạn không thể thêm chúng lại với nhau.

Dữ liệu phân loại thường được chia thành hai loại:

  1. Dữ liệu ẩn danh: Đây là khi các danh mục chỉ được gắn nhãn và không thể sắp xếp theo bất kỳ thứ tự cụ thể nào. Các ví dụ bao gồm giới tính (nam, nữ), nhóm máu (A, B, AB, O) hoặc màu sắc (đỏ, lục, lam).
  1. Dữ liệu thứ tự: Đây là lúc các danh mục có thể được sắp xếp hoặc xếp hạng. Mặc dù khoảng cách giữa các danh mục không cách đều nhau nhưng thứ tự của các danh mục đều có ý nghĩa. Các ví dụ bao gồm thang đánh giá (xếp hạng từ 1 đến 5 của một bộ phim), trình độ học vấn (trung học, đại học, sau đại học) hoặc các giai đoạn của bệnh ung thư (Giai đoạn I, Giai đoạn II, Giai đoạn III).

Để nhập dữ liệu phân loại bị thiếu, chế độ này thường được sử dụng. Trong ví dụ của chúng tôi, cột property_category là dữ liệu phân loại (danh nghĩa) và thiếu dữ liệu ở hai hàng.

Hãy thay thế các giá trị còn thiếu bằng chế độ.

# For categorical columns
df['property_category'] = df['property_category'].fillna(df['property_category'].mode()[0])

Mã này sử dụng fillna () để thay thế tất cả các giá trị NaN trong cột property_category. Nó thay thế nó bằng chế độ.

Ngoài ra, phần [0] được sử dụng để trích xuất giá trị đầu tiên từ Chuỗi này. Nếu có nhiều chế độ, thao tác này sẽ chọn chế độ đầu tiên. Nếu chỉ có một chế độ, nó vẫn hoạt động tốt.

Đây là đầu ra.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Dữ liệu bây giờ trông khá tốt. Điều duy nhất còn lại là xem liệu có ngoại lệ hay không.

Bạn có thể thực hành xử lý các giá trị rỗng trên đây Câu hỏi phỏng vấn meta, nơi bạn sẽ phải thay thế NULL bằng số không.

Các ngoại lệ là các điểm dữ liệu trong tập dữ liệu khác biệt rõ rệt với các quan sát khác. Chúng có thể nằm rất xa so với các giá trị khác trong tập dữ liệu, nằm ngoài một mẫu tổng thể. Chúng được coi là bất thường do giá trị của chúng cao hơn hoặc thấp hơn đáng kể so với phần còn lại của dữ liệu.

Các ngoại lệ có thể phát sinh do nhiều lý do khác nhau như:

  • Lỗi đo lường hoặc đầu vào
  • Tham nhũng dữ liệu
  • Bất thường thống kê thực sự

Các ngoại lệ có thể tác động đáng kể đến kết quả phân tích dữ liệu và mô hình thống kê của bạn. Chúng có thể dẫn đến phân phối sai lệch, sai lệch hoặc vô hiệu hóa các giả định thống kê cơ bản, bóp méo sự phù hợp của mô hình ước tính, làm giảm độ chính xác dự đoán của các mô hình dự đoán và dẫn đến kết luận không chính xác.

Một số phương pháp thường được sử dụng để phát hiện các giá trị ngoại lệ là điểm Z, IQR (Phạm vi tứ phân vị), biểu đồ hình hộp, biểu đồ phân tán và kỹ thuật trực quan hóa dữ liệu. Trong một số trường hợp nâng cao, phương pháp học máy cũng được sử dụng.

Trực quan hóa dữ liệu có thể giúp xác định các ngoại lệ. Boxplot của Seaborn rất hữu ích cho việc này.

plt.figure(figsize=(10, 6))
sns.boxplot(data=df[['advertised_price', 'sale_price']])

Chúng ta sử dụng plt.figure() để đặt chiều rộng và chiều cao của hình tính bằng inch.

Sau đó, chúng ta tạo sơ đồ hộp cho các cột posted_price và sale_price trông như thế này.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Cốt truyện có thể được cải thiện để sử dụng dễ dàng hơn bằng cách thêm mã này vào đoạn mã trên.

plt.xlabel('Prices')
plt.ylabel('USD')
plt.ticklabel_format(style='plain', axis='y')
formatter = ticker.FuncFormatter(lambda x, p: format(x, ',.2f'))
plt.gca().yaxis.set_major_formatter(formatter)

Chúng tôi sử dụng đoạn mã trên để đặt nhãn cho cả hai trục. Chúng tôi cũng nhận thấy rằng các giá trị trên trục y nằm trong ký hiệu khoa học và chúng tôi không thể sử dụng ký hiệu đó cho giá trị giá. Vì vậy, chúng tôi thay đổi kiểu này thành kiểu đơn giản bằng cách sử dụng hàm plt.ticklabel_format().

Sau đó, chúng tôi tạo bộ định dạng sẽ hiển thị các giá trị trên trục y bằng dấu phẩy dưới dạng dấu phân cách hàng nghìn và dấu chấm thập phân. Dòng mã cuối cùng áp dụng điều này cho trục.

Đầu ra bây giờ trông như thế này.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Bây giờ, làm thế nào để chúng ta xác định và loại bỏ ngoại lệ?

Một trong những cách đó là sử dụng phương pháp IQR.

IQR, hay Phạm vi liên vùng, là một phương pháp thống kê được sử dụng để đo lường mức độ biến thiên bằng cách chia tập dữ liệu thành các phần tư. Các phần tư chia tập dữ liệu theo thứ tự xếp hạng thành bốn phần bằng nhau và các giá trị trong phạm vi của phần tư thứ nhất (phân vị thứ 25) và phần tư thứ ba (phân vị thứ 75) tạo nên phạm vi liên tứ phân vị.

Phạm vi liên vùng được sử dụng để xác định các giá trị ngoại lệ trong dữ liệu. Đây là cách nó hoạt động:

  1. Đầu tiên, tính tứ phân vị thứ nhất (Q1), tứ phân vị thứ ba (Q3), sau đó xác định IQR. IQR được tính là Q3 – Q1.
  2. Bất kỳ giá trị nào dưới Q1 – 1.5IQR hoặc cao hơn Q3 + 1.5IQR đều được coi là giá trị ngoại lệ.

Trên boxplot của chúng tôi, chiếc hộp thực sự đại diện cho IQR. Dòng bên trong hộp là trung vị (hoặc tứ phân vị thứ hai). 'Râu' của biểu đồ hình hộp thể hiện phạm vi trong phạm vi 1.5*IQR từ Q1 và Q3.

Bất kỳ điểm dữ liệu nào nằm ngoài những điểm này đều có thể được coi là điểm ngoại lệ. Trong trường hợp của chúng tôi, đó là giá trị 12,000,000 USD. Nếu nhìn vào sơ đồ hộp, bạn sẽ thấy điều này được thể hiện rõ ràng như thế nào, điều này cho thấy tại sao trực quan hóa dữ liệu lại quan trọng trong việc phát hiện các giá trị ngoại lệ.

Bây giờ, hãy loại bỏ các ngoại lệ bằng cách sử dụng phương pháp IQR trong mã Python. Đầu tiên, chúng tôi sẽ loại bỏ các giá trị ngoại lệ được quảng cáo.

Q1 = df['advertised_price'].quantile(0.25)
Q3 = df['advertised_price'].quantile(0.75)
IQR = Q3 - Q1
df = df[~((df['advertised_price'] (Q1 - 1.5 * IQR)) |(df['advertised_price'] > (Q3 + 1.5 * IQR)))]

Trước tiên, chúng tôi tính toán tứ phân vị thứ nhất (hoặc phân vị thứ 25) bằng cách sử dụng lượng tử() chức năng. Chúng tôi làm tương tự cho phần tư thứ ba hoặc phần trăm thứ 75.

Chúng hiển thị các giá trị dưới đây tương ứng là 25% và 75% dữ liệu.

Sau đó, chúng tôi tính toán sự khác biệt giữa các phần tư. Mọi thứ cho đến nay chỉ là dịch các bước IQR sang mã Python.

Bước cuối cùng, chúng tôi loại bỏ các ngoại lệ. Nói cách khác, tất cả dữ liệu nhỏ hơn Q1 – 1.5 * IQR hoặc lớn hơn Q3 + 1.5 * IQR.

Toán tử '~' phủ định điều kiện, vì vậy chúng ta chỉ còn lại dữ liệu không phải là dữ liệu ngoại lệ.

Sau đó chúng ta có thể làm tương tự với giá bán.

Q1 = df['sale_price'].quantile(0.25)
Q3 = df['sale_price'].quantile(0.75)
IQR = Q3 - Q1
df = df[~((df['sale_price'] (Q1 - 1.5 * IQR)) |(df['sale_price'] > (Q3 + 1.5 * IQR)))]

Tất nhiên, bạn có thể làm điều đó một cách ngắn gọn hơn bằng cách sử dụng vòng lặp for.

for column in ['advertised_price', 'sale_price']: Q1 = df[column].quantile(0.25) Q3 = df[column].quantile(0.75) IQR = Q3 - Q1 df = df[~((df[column] (Q1 - 1.5 * IQR)) |(df[column] > (Q3 + 1.5 * IQR)))]

Vòng lặp lặp lại hai cột. Đối với mỗi cột, nó tính toán IQR và sau đó xóa các hàng trong DataFrame.

Xin lưu ý rằng thao tác này được thực hiện tuần tự, đầu tiên là cho ad_price và sau đó là sale_price. Do đó, DataFrame được sửa đổi tại chỗ cho mỗi cột và các hàng có thể bị xóa do là ngoại lệ trong một trong hai cột. Do đó, thao tác này có thể tạo ra ít hàng hơn so với khi các giá trị ngoại lệ cho posted_price và sale_price bị xóa độc lập và kết quả được kết hợp sau đó.

Trong ví dụ của chúng tôi, đầu ra sẽ giống nhau trong cả hai trường hợp. Để xem biểu đồ hình hộp thay đổi như thế nào, chúng ta cần vẽ lại biểu đồ đó bằng cách sử dụng cùng mã như trước đó.

plt.figure(figsize=(10, 6))
sns.boxplot(data=df[['advertised_price', 'sale_price']])
plt.xlabel('Prices')
plt.ylabel('USD')
plt.ticklabel_format(style='plain', axis='y')
formatter = ticker.FuncFormatter(lambda x, p: format(x, ',.2f'))
plt.gca().yaxis.set_major_formatter(formatter)

Đây là đầu ra.

 

Nắm vững nghệ thuật làm sạch dữ liệu trong Python
 

Bạn có thể thực hành tính phần trăm trong Python bằng cách giải Câu hỏi phỏng vấn Đại hội đồng.

Làm sạch dữ liệu là một bước quan trọng trong quá trình phân tích dữ liệu. Mặc dù việc này có thể tốn thời gian nhưng điều cần thiết là phải đảm bảo tính chính xác cho kết quả tìm kiếm của bạn.

May mắn thay, hệ sinh thái thư viện phong phú của Python giúp quá trình này trở nên dễ quản lý hơn. Chúng tôi đã học cách xóa các hàng và cột không cần thiết, định dạng lại dữ liệu cũng như xử lý các giá trị và giá trị ngoại lệ bị thiếu. Đây là những bước thông thường phải được thực hiện trên hầu hết mọi dữ liệu. Tuy nhiên, đôi khi bạn cũng sẽ cần phải gộp hai cột thành một, xác minh dữ liệu hiện có, gán nhãn cho nó, hoặc là loại bỏ các khoảng trắng.

Tất cả điều này là làm sạch dữ liệu, vì nó cho phép bạn biến dữ liệu trong thế giới thực lộn xộn thành một tập dữ liệu có cấu trúc tốt mà bạn có thể tự tin phân tích. Chỉ cần so sánh tập dữ liệu chúng tôi đã bắt đầu với tập dữ liệu chúng tôi đã kết thúc.

Nếu bạn không thấy hài lòng với kết quả này và dữ liệu sạch không khiến bạn phấn khích một cách kỳ lạ thì bạn đang làm cái quái gì trong khoa học dữ liệu vậy!?
 

Nate Rosidi là một nhà khoa học dữ liệu và trong chiến lược sản phẩm. Anh ấy cũng là một giáo sư trợ giảng dạy phân tích và là người sáng lập StrataScratch, một nền tảng giúp các nhà khoa học dữ liệu chuẩn bị cho cuộc phỏng vấn của họ với các câu hỏi phỏng vấn thực tế từ các công ty hàng đầu. Kết nối với anh ấy trên Twitter: StrataScratch or LinkedIn.

Dấu thời gian:

Thêm từ Xe đẩy