Python数据预处理代码实例
数据预处理是数据分析和机器学习中非常重要的一步。在本攻略中,我们将介绍Python中常用数据预处理技术,并提供两个示例。
步骤一:导入库
首先,我们需要导入中常用的数据处理库包括numpy、pandas和matplotlib。可以使用以下代码导入:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
步骤二:读取数据
接下来,我们需要读取数据。在本攻略中,我们将使用pandas库中的read_csv函数来读取CSV文件。下面是一个示例:
data = pd.read_csv('data.csv')
在上面的代码中,我们使用read_csv函数读取名为data.csv的CSV文件,并将其存储在名为data的pandas数据框中。
步骤三处理缺失值
接下来,我们需要处理缺失值。在本攻略中,我们将使用pandas库中的dropna函数来删除包含缺失值的行。下面是一个示例:
data = data.dropna()
在上面的代码中,我们使用dropna函数删除包含缺失值的行,并将结果存储在名为data的pandas数据框中。
步骤四:处理异常值
接下来,我们需要处理异常值。在本攻略中,将使用numpy库中的percentile函数来计算数据的百分位数,并使用pandas库中的loc函数来选择数据框中的异常值。下面是一个示例:
q1 = np.percentile(data['column_name'], 25)
3 = np.percentile(data['column_name'], 75)
iqr = q3 - q1
data = data.loc[(data['column_name'] > q1 - 1.5*iqr) & (data['column_name'] < q3 + 1.5*iqr```
在上面的代码中,我们使用percentile函数计算数据的第一四分位数(q1)、第三四分位数(q3)和四分位距(iqr)。然后,我们使用loc函数选择数据框中的异常值,并将结果存储在名为data的pandas数据框中。
## 步骤五:特征缩放
下来,我们需要对数据进行特征缩放。在本攻略中,我们将使用numpy库中的mean和std函数来计算数据的均值和标准差,并使用pandas库中的apply函数来对数据进行特征缩放。下面是一个示例:
```python
mean = np.mean(data['column_name'])
std = np.std(data['column_name'])
data['column_name'] = data['column_name'].apply(lambda x: (x - mean) / std)
在上面的代码中,我们使用mean和std函数计算数据的均值和标准差。然后,我们使用apply函数对数据进行特征缩,并将结果存储在名为data的pandas数据框中。
示例一:处理鸢尾花数据集
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
# 读取数据
iris = load_iris()
data = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
# 处理缺失值
data = data.dropna()
# 处理异常值
q1 = np.percentile(data['sepal length (cm)'], 25)
q3 = np.percentile(data['sepal length (cm)'], 75)
iqr = q3 - q1
data = data.loc[(data['sepal length (cm) > q1 - 1.5*iqr) & (data['sepal length (cm)'] < q3 + 1.5*iqr)]
# 特征缩放
mean = np.mean(data['sepal length (cm)'])
std = np.std(data['sepal length (cm)data['sepal length (cm)'] = data['sepal length (cm)'].apply(lambda x: (x - mean) / std)
# 绘制图像
plt.scatter(data['sepal length (cm)'], data['se width (cm)'], c=data['target'])
plt.xlabel('Sepal Length (cm)')
plt.ylabel('Sepal Width (cm)')
plt.show()
在上面的代码中,我们使用鸢尾花数据集作为例。我们读取数据,处理缺失值、异常值和特征缩放,并使用matplotlib库绘制了散点图。
示例二:处理波士顿房价数据集
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
# 读取数据
boston = load_boston()
data = pd.DataFrame(data= np.c_[boston['data'], boston['target']], columns= np.append(boston['feature_names'], 'target'))
# 处理缺失值
data = data.dropna()
# 处理异常值
q1 = np.percentile(data['RM'], 25)
q3 = np.percentile(data['RM'],75)
iqr = q3 - q1
data = data.loc[(data['RM'] > q1 - 1.5*iqr) & (data['RM'] < q3 + 1.5*iqr)]
# 特征缩放
mean = np.mean(data['RM'])
std np.std(data['RM'])
data['RM'] = data['RM'].apply(lambda x: (x - mean) / std)
# 绘制图像
plt.scatter(data['RM'], data['target'])
plt.xlabel('Average Number of Rooms per Dwelling')
plt.ylabel('House Price')
plt.show()
在上面的代码中,我们使用波士顿房价数据集作为示例。我们读取数据,处理缺失值、异常值和特征放,并使用matplotlib库绘制了散点图。
总结
本攻略介绍了Python中常用的数据预处理技术,包处理缺值、异常值和特征缩放。我们提供了两个示例,分别使用鸢尾花数据集和波士顿房价数据集。数据预处理是数据分析和机器学习中非常重要的一步,它可以提高模型的准确性和可靠性。