探索性数据分析:样本超市数据集

在本文中,将对样本超市数据集进行探索性数据分析(EDA),以识别数据中的弱点并提出相应的改进措施。数据集的链接如下:

数据集中包含了诸如运输方式、市场细分、国家、城市、州、邮政编码、地区、类别、子类别、销售额、数量、折扣和利润等多个特征。其中,利润是因变量,其余为自变量。将分析利润较低的领域,并探索如何克服这些问题。

数据集处理

首先,需要导入numpy和pandas库来处理数据集。

import numpy as np import pandas as pd

使用pandas导入数据集,并查看数据集的基本信息。

superstore_df = pd.read_csv('路径/SampleSuperstore.csv') superstore_df.head()

通过上述代码,可以查看数据集的前五行。同样,可以使用tail()方法查看数据集的最后五行。

superstore_df.tail()

还可以通过shape属性查看数据集的行数和列数。

superstore_df.shape

输出结果表明,数据集包含9994行和13列。通过columns属性,可以查看数据集的所有列名。

superstore_df.columns

通过info()方法,可以查看数据集的详细信息,包括数据类型、非空值数量等。

superstore_df.info()

使用isnull()方法检查数据集中是否存在空值。

superstore_df.isnull().sum()

结果显示数据集中没有空值。接下来,可以查看数据集中的唯一类别和州。

print(superstore_df['Category'].unique()) print(superstore_df['State'].unique())

通过nunique()方法,可以查看每个列中唯一值的数量。

no_of_states = superstore_df['State'].nunique() print("There are %d states in this df." % no_of_states)

输出结果表明,数据集中包含49个州。同样,可以查看子类别的唯一值数量。

no_of_subcategory = superstore_df['Sub-Category'].nunique() print("Categories are divided into %d subcategories" % no_of_subcategory)

输出结果表明,类别被分为17个子类别。

创建损失数据集

接下来,将创建一个新的数据集,专注于利润为负的记录,即损失记录。

loss_df = superstore_df[superstore_df['Profit'] < 0]

通过上述代码,创建了一个新的数据集,包含所有利润小于零的特征。

loss_df.shape

输出结果表明,损失数据集包含1871行和13列。

还可以通过describe()方法查看损失数据集的统计描述。

loss_df.describe()

通过计算损失数据集的总损失,可以得出以下结论:

total_loss = np.negative(loss_df['Profit'].sum()) print("Total loss = %.2f" % total_loss)

输出结果表明,总损失为156131.29。

可视化分析

为了更好地理解数据,将使用matplotlib和seaborn库进行可视化分析。

import matplotlib.pyplot as plt import seaborn as sns

首先,可以通过柱状图查看不同子类别的销售情况。

plt.bar(loss_df['Sub-Category'], loss_df['Sales'])

通过上述代码,可以观察到Fasteners、Appliances、Furnishings和Accessories等子类别的销售情况非常低。

还可以通过柱状图比较整个超市数据集中不同子类别的销售情况。

plt.bar(superstore_df['Sub-Category'], superstore_df['Sales'])

通过比较,可以发现Fasteners、Labels、Furnishings、Art、Paper、Envelopes等子类别的销售情况较低,需要改进。

还可以通过柱状图查看不同运输方式的销售情况。

plt.bar(superstore_df['Ship Mode'], superstore_df['Sales'])

通过上述代码,可以观察到,如果运输方式是标准快递,销售情况较好;如果运输方式是二等快递或当日快递,销售情况较差。

通过计数图,可以查看不同市场细分的销售情况。

sns.countplot(x=superstore_df.Segment)

通过上述代码,可以观察到Home Office细分的销售情况较少,需要改进。

还可以通过计数图查看不同子类别的销售情况。

sns.countplot(x='Sub-Category', data=superstore_df)

通过上述代码,可以清楚地看到Copiers和Machines子类别需要改进。

通过计数图,还可以查看不同地区的销售情况。

sns.countplot(x='Region', data=superstore_df)

通过上述代码,可以得出结论,与其他地区相比,南部地区需要更多的改进。

通过热力图,可以分析不同特征之间的相关性。

sns.heatmap(superstore_df.corr(), cmap='Reds', annot=True)

通过热力图,可以得出以下结论:

  • 销售额和利润之间存在中等程度的相关性。
  • 折扣和利润之间存在负相关性。

导致损失的主要原因是折扣。如果某些领域因折扣过多而亏损,而某些领域因折扣过少而销售额较低,那么就需要改进。

在节日季节提供更多折扣可能会带来更多销售。

Home Office细分需要更好的改进。

一些城市的销售额较少,缺乏知名度可能是原因之一,因此在这些城市进行广告宣传可能有助于增加销售额。

通过本文,学习了如何进行探索性数据分析

使用样本超市数据集进行了分析,并发现了其中的损失领域,并提出了一些克服措施。

还进行了可视化分析,并得出了结论。

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