如何在Python中进行探索性数据分析

226 阅读3分钟

任何数据分析项目的第一步都是探索性数据分析

这涉及到以三种方式探索一个数据集。

1.使用描述性统计对数据集进行总结

2.2. 使用图表对数据集进行可视化

3.3.识别缺失值。

通过执行这三个动作,你可以了解数据集中的值是如何分布的,并在继续执行假设测试或执行统计建模之前发现任何有问题的值。

下面的步骤显示了如何在Python中对一个数据集进行探索性数据分析。

第一步:创建数据

首先,让我们创建以下pandas DataFrame。

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, np.nan, 9, 12]})

我们可以通过使用**head()**函数看一下DataFrame的前五行。

#view first five rows of dataset
df.head()

	team	points	assists	rebounds
0	A	18	5	11.0
1	A	22	7	8.0
2	A	19	7	10.0
3	A	14	9	6.0
4	B	14	12	6.0

第二步:总结数据

我们可以使用**describe()**函数来快速总结数据集中的每个数值变量。

#summarize numerical variables
df.describe()

           points	assists 	rebounds
count	8.0000000	8.00000 	7.000000
mean	18.250000	7.75000 	8.857143
std	5.3652320	2.54951 	2.340126
min	11.000000	4.00000 	6.000000
25%	14.000000	6.50000 	7.000000
50%	18.500000	8.00000 	9.000000
75%	20.500000	9.00000 	10.50000
max	28.000000	12.0000         12.00000

对于每个数字变量,我们可以看到以下信息。

  • count:非遗漏值的总数
  • std:均值
  • min:最小值
  • 25%:第一个四分位数(第25个百分点)的值
  • 50%:中位值(第50个百分点)
  • 75%:第三个四分位数的值(第75个百分位)。
  • 最大值。最大值

对于数据集中的分类变量,我们可以使用value_counts来获得每个值的频率计数。

#display frequency counts for team variable
df['team'].value_counts()

A    4
B    4
Name: team, dtype: int64

从输出中我们可以看到。

  • A:这个值出现4次。
  • B:这个值出现了4次。

我们可以使用shape函数来获得DataFrame的行数和列数的尺寸。

#display rows and columns
df.shape

(8, 4)

我们可以看到,DataFrame有8 行和4 列。

第3步:数据的可视化

我们还可以创建图表来可视化数据集中的值。

例如,我们可以使用pandas**hist()**函数为每个数字变量的值创建一个直方图。

#create histogram for each numerical variable
df.hist(grid=False, edgecolor='black')

每个直方图的X轴显示每个变量的值,Y轴显示每个值的频率。

我们还可以使用pandas**boxplot****()**函数来为每个数值变量创建一个boxplot。

#create boxplot for each numerical variable
df.boxplot(grid=False)

我们还可以使用**geom_boxplot()**函数为一个变量创建一个由另一个变量分组的boxplot。

我们还可以使用pandas**corr()**函数来创建一个相关矩阵,以查看DataFrame中每一对数字变量组合之间的相关系数

#create correlation matrix
df.corr()

          points	  assists	 rebounds
points	 1.000000	-0.725841	 0.767007
assists	-0.725841	 1.000000	-0.882046
rebounds 0.767007	-0.882046	 1.000000

相关的。 什么被认为是 "强 "相关?

第4步:识别缺失值

我们可以使用下面的代码来计算DataFrame中每一列的缺失值的总数。

#count total missing values in each column
df.isnull().sum()

team        0
points      0
assists     0
rebounds    1
dtype: int64

从输出结果中我们可以看到,在篮子这一栏中只有一个缺失值。

所有其他列都没有缺失值。

现在我们已经完成了对这个数据集的基本探索性数据分析,对这个数据集中每个变量的数值分布有了很好的了解。

相关的。 如何在Pandas中推算缺失值

其他资源

下面的教程解释了如何在Python中执行其他常见任务。

如何在Python中创建频率表
如何从Pandas DataFrame中创建Boxplot
如何从Pandas DataFrame中创建直方图

The postHow to Perform Exploratory Data Analysis in Pythonappeared first onStatology.