1. EDA的基本步骤
EDA的基本步骤包括数据清洗、数据分析和可视化。代码示例如下:
# 数据清洗 import pandas as pd df = pd.read_csv('data.csv') df.dropna(inplace=True) df.drop_duplicates(inplace=True) # 数据分析 import numpy as np mean = np.mean(df['age']) median = np.median(df['age']) std = np.std(df['age']) # 可视化 import matplotlib.pyplot as plt plt.hist(df['age'], bins=10) plt.xlabel('Age') plt.ylabel('Count') plt.show()
2. 数据清洗
(1)如何在Python中进行EDA(探索性数据分析)设计数据清洗。在此过程中,我们将使用两个流行的Python库,即pandas和numpy。
首先,我们需要导入这些库:
import pandas as pd import numpy as np
然后,我们需要输入我们的数据集。您可以从市场上找到多种数据集,但是在这里,我们将使用在Kaggle上找到的“贷款数据集”。该数据集包含有关借款人的信息,例如借款人的收入,工作状态和信用评分等。
df = pd.read_csv('loan.csv')
接下来,我们可以使用.head()方法来查看前几行数据。
df.head()
这将输出您的数据集的前几行。接下来,我们可以使用.describe()方法查看关于数据集的描述性统计信息。
df.describe()
使用此方法,我们可以看到均值,中位数,标准差,最小和最大值等统计属性。您还可以使用.count()方法获得每个列中的非NaN值的数量。
df.count()
现在,我们来看一下是否存在缺失值:
df.isnull().sum()
这将显示每列中的缺少值数量。如您所见,一些列包含了少量缺失值,其他列包含大量缺失值。
为了处理这些缺失值,我们可以使用fillna()方法将它们替换为0。
df.fillna(0, inplace=True)
但是,对于一些需要处理的列,例如“信用额度”和“年金金额”,我们不能删除或简单地替换NaN值。相反,当出现缺少值时,我们可能需要使用列的平均值或中位数来填充这些列的缺失值。我们可以通过以下代码执行此操作:
df['信用额度'].fillna(df['信用额度'].mean(), inplace=True) df['年金金额'].fillna(df['年金金额'].median(), inplace=True) ``` 我们也可以使用.scatter()方法绘制散点图进行EDA。例如,下面的代码将显示“信用额度”和“年金金额”的散点图: ``` df.plot.scatter(x='信用额度', y='年金金额')
最后,我们可以使用以上方法和其他技巧来洗数据,探索数据集并作出更好的数据分析。
(2)数据清洗是EDA的重要步骤,可以通过Python的pandas库进行处理。代码示例如下:
import pandas as pd df = pd.read_csv('data.csv') # 删除缺失值 df.dropna(inplace=True) # 删除重复值 df.drop_duplicates(inplace=True) # 替换异常值 df['age'] = df['age'].apply(lambda x: x if x > 0 and x < 120 else np.nan) # 提取日期信息 df['date'] = pd.to_datetime(df['date']) df['year'] = df['date'].apply(lambda x: x.year)
3. 数据分析
数据分析可以基于Python的numpy和pandas库进行处理。代码示例如下:
import pandas as pd import numpy as np df = pd.read_csv('data.csv') # 求均值、中位数、标准差等统计量 mean = np.mean(df['age']) median = np.median(df['age']) std = np.std(df['age']) # 计算相关系数矩阵 corr_matrix = np.corrcoef(df[['age', 'weight', 'height']].T) # 分组统计 df.groupby('gender')['age'].mean() df.groupby('year')['income'].agg(['mean', 'median'])
4. 可视化
可视化是EDA的重要环节,可以帮助我们更清晰地了解数据分布和关系。Python中常见的可视化库有matplotlib、seaborn和plotly等。代码示例如下:
import matplotlib.pyplot as plt import seaborn as sns # 绘制散点图 plt.scatter(df['age'], df['income']) plt.xlabel('Age') plt.ylabel('Income') plt.show() # 绘制柱状图 sns.countplot(x='gender', data=df) plt.xlabel('Gender') plt.ylabel('Count') plt.show() # 绘制箱线图 sns.boxplot(x='gender', y='income', data=df) plt.xlabel('Gender') plt.ylabel('Income') plt.show()
以上只是简单的示例,EDA的内容和代码实现根据具体情况会有所不同。总之,EDA的目的是通过对数据的处理、分析和可视化,了解数据的基本情况和特点,为后续的建模和分析打下基础。