数据探索分析(EDA)与Python实践

数据探索分析(EDA)是理解和分析数据集的重要手段。数据科学家和分析师广泛使用EDA技术来总结数据集的主要特征,并通过不同的图表和图形进行可视化。这种技术帮助数据科学家寻找模式、发现异常或检验假设,确保所使用的统计技术是否适合数据分析。EDA确保结果的有效性和适用性,符合业务目标。完成EDA任务后,其特性可用于更有效和更好的数据分析、建模和机器学习。

本文将对一个小型而有趣的数据集进行探索性数据分析。该数据集是Uber股票数据集,包含七个记录,包括日期、股票开盘价、收盘价、当天股票的最高和最低值、相邻股票的收盘价以及当天交易的股票数量。数据集包含605条记录。可以从下载数据集。

使用Python的pandas库,可以快速查看数据集的前几行:

data = pd.read_csv("UBER.csv") data.head()

以上代码展示了数据集的前几行。也可以使用data.head(x),其中x代表想要查看的记录数量。

为了更深入地了解数据,可以使用pandas的‘describe’功能:

data.describe()

通过上述表格,可以获取数据集的许多有用信息,例如均值、标准差、值计数以及值在数据集中出现的频率。

在进行EDA之前,需要检查数据集是否包含任何空值。数据集不包含任何空值。然而,出于好奇,将查看如果数据集包含空值,图表会是什么样子。将从交易量列中删除一些值,并查看结果。为此,将使用seaborn库。

data2 = data.copy() data2.iloc[1:50,data2.columns.get_loc('Volume')] = None sns.heatmap(data2.isnull(),cbar=False,cmap='viridis') # 检查空值

上述图像显示交易量列包含大约25个空值。可以绘制原始数据框架,看看没有空值的数据集会是什么样子。

通过绘制热图,可以获取更多关于数据集变量的信息。热图是数据的二维表示,显示一个变量与其他变量的相关程度。它包含从-1到1的值。假设有两个变量x和y,让看看可能的原因。

当x和y之间的相关性为-1时,这意味着x与y负相关。这意味着当x的值增加时,y的值会减少。值越接近-1,负相关性就越大。当x和y之间的相关性为0时,这意味着x和y没有相关性,是独立的。当x和y之间的相关性为1时,这意味着x与y正相关。或者简单地说,每当x增加时,y也增加。

现在对热图有了一定的了解,可以继续使用seaborn库在Uber股票数据集上创建热图。

plt.figure(figsize=(7,5)) sns.heatmap(data.corr(),cmap='Blues',annot=True)

从上述热图中,可以看到许多1和接近1的值。这意味着这些变量显示出高度的正相关性并且是相互关联的。这可能是因为这些值之间的差异相对较小。然而,在股票市场中,正是这些小值造成了差异。因此,将在数据集中添加新变量,代表这些值之间的差异。

data['open-high'] = data['Open']-data['High'] data['open-low'] = data['Open'] - data['Low'] data['close-high'] = data['Close']-data['High'] data['close-low'] = data['Close'] - data['Low'] data['high-low'] = data['High'] - data['Low'] data['open-close'] = data['Open'] - data['Close']

已经向数据集添加了6个新条目。现在可以创建一个包含这些新值的热图,并查看它们的相互关联性。

从之前的热图中,可以意识到这些值并不是很有用。因此,为了更清晰,将删除这些值,并仅使用新值来创建热图。

data2 = data.copy() data2 = data2.drop(['Open','High','Low','Close', 'Adj Close'],axis=1) plt.figure(figsize=(7,5)) sns.heatmap(data2.corr(),cmap='Blues',annot=True)

这个热图是否比之前的更有信息量?希望也这么认为。基于相关性值,可以为这个数据集推导出许多见解。

股票市场就是关于数字的。理解这些数字并找到模式是一种艺术,而数据分析师就是艺术家。在这个数据集中,将主要关注‘Volume’变量。与体积特征具有较大相关性值的变量表明,这些数字可能吸引了大量的买家和卖家。这些特征与体积特征之间的相关性将告诉,该特征的变化如何影响当天交易的股票数量。

‘open-high’显示与体积特征最负相关。这意味着股票开盘价与当天最高价之间的差异越大,当天交易的股票数量就越多。由于没有关于买家和卖家数量的信息,只能猜测,股票开盘价与最高价之间的高差异可能会吸引更多的买家。而较小的差异可能会吸引更多的卖家。

sns.barplot(data=data, x="open-high", y="Volume")

从下面的图表中,可以观察到,与较大的open-high值相比,较小的open-high值的交易量更高。

‘high-low’特征显示与‘volume’特征的最大相关性值。因此,可以认为,股票价格的较大波动可能是当天更多股票交易的原因。

sns.barplot(data=data, x="high-low", y="Volume")

从下面的图表中,可以观察到,对于较大的high-low值,交易的股票数量更高。

结论:探索性数据分析是数据分析中的重要任务,有助于更好地理解数据集。它是创建机器学习模型之前的一个必要步骤,因为它有助于理解变量之间的关系。正确进行的EDA为整个过程提供了坚实的基础,确保了更好的结果,并借助有趣的图表和图形验证了假设。在本文中,尝试对一个小型但有趣的数据集进行EDA。

希望喜欢阅读这篇文章。

感谢。

同时,查看其他文章:

在LinkedIn上联系:

图片来源:

博客马拉松

Uber股票数据分析

:Ayush

好。写作和探索是一些爱好。之所以喜欢机器学习,是因为它有无尽的应用和改进空间。喜欢解决问题,学习新事物。相信要学习任何新技能,一个人应该有学习它的意愿。问对问题,剩下的,谷歌搜索会帮解决。在业余时间,喜欢听音乐和弹吉他。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485