ai完成案例数据分析和可视化

通过向ai提问“使用python完成一个案例的数据分析和可视化”

ai给出详细步骤如下:

当然可以!我们来做一个Python数据分析与可视化的完整案例,从数据读取、清洗、分析到可视化一步步来。

下面是一个常见的案例:分析超市销售数据


🛒 案例说明:超市销售数据分析

我们将分析一个超市的销售记录数据集,了解:

  • 哪些城市销售额高?

  • 各产品类别的销售情况?

  • 不同时间段销售趋势?

  • 客户类型对销售的影响?


第一步:准备数据

你可以使用下面的CSV格式数据保存为 supermarket_sales.csv

Invoice ID,Branch,City,Customer type,Gender,Product line,Unit price,Quantity,Tax 5%,Total,Date,Time,Payment,cogs,Gross margin percentage,Gross income,Rating
750-67-8428,A,Yangon,Member,Female,Health and beauty,74.69,7,26.1415,548.9715,1/5/2019,13:08,Ewallet,522.83,4.761905,26.1415,9.1
226-31-3081,C,Naypyitaw,Normal,Female,Fashion accessories,15.28,5,3.82,80.22,3/8/2019,10:29,Cash,76.4,4.761905,3.82,9.6
...

你可以使用完整的数据集(共1000条)在Kaggle找到:Supermarket sales | Kaggle


第二步:Python代码(分析 + 可视化)

确保你安装好下面的包:

pip install pandas matplotlib seaborn

然后运行下面的 Python 代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 读取数据
df = pd.read_csv('supermarket_sales.csv')

# 解析日期
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month
df['Day'] = df['Date'].dt.day
df['Weekday'] = df['Date'].dt.day_name()

# 基础统计
print("数据概况:\n", df.describe())
print("字段缺失情况:\n", df.isnull().sum())

# 🟢 分析1:不同城市的销售额
city_sales = df.groupby('City')['Total'].sum().sort_values(ascending=False)
plt.figure(figsize=(8,5))
sns.barplot(x=city_sales.index, y=city_sales.values, palette='viridis')
plt.title("不同城市销售额比较")
plt.ylabel("总销售额")
plt.xlabel("城市")
plt.tight_layout()
plt.show()

# 🟢 分析2:产品线销售额
product_sales = df.groupby('Product line')['Total'].sum().sort_values()
plt.figure(figsize=(10,6))
sns.barplot(x=product_sales.values, y=product_sales.index, palette='magma')
plt.title("各产品线销售额")
plt.xlabel("总销售额")
plt.ylabel("产品线")
plt.tight_layout()
plt.show()

# 🟢 分析3:每天销售趋势
daily_sales = df.groupby('Date')['Total'].sum()
plt.figure(figsize=(12,5))
daily_sales.plot()
plt.title("每日销售趋势")
plt.ylabel("销售额")
plt.xlabel("日期")
plt.grid(True)
plt.tight_layout()
plt.show()

# 🟢 分析4:不同顾客类型销售对比
plt.figure(figsize=(8,6))
sns.boxplot(data=df, x='Customer type', y='Total', palette='pastel')
plt.title("不同顾客类型的消费分布")
plt.tight_layout()
plt.show()

第三步:你会看到以下可视化图表

  1. 各城市销售额柱状图

  2. 产品线销售柱状图(例如:Health and Beauty,Fashion,...)

  3. 每日销售趋势折线图

  4. 顾客类型消费分布箱线图


🔧 后续可做扩展:

  • 计算每个产品线的平均客单价

  • 分析支付方式占比

  • 找出最高评分与最低评分的销售记录

  • plotly做交互图


你想我帮你用这个案例做一个可执行的 .py 脚本、Jupyter Notebook 或者图形界面应用(GUI)吗?我可以继续帮你细化

注意:若出现中文乱码可以使用


# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

此时ai所绘制的表格默认使用的是英文,我们可以让他使用中文格式

好的,下面是修改后的中文格式版本。我们会对数据进行分析并生成相应的可视化图表。请确保你使用的是中文数据集。

然后运行以下代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 读取数据
df = pd.read_csv('supermarket_sales.csv')

# 解析日期
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month
df['Day'] = df['Date'].dt.day
df['Weekday'] = df['Date'].dt.day_name()

# 基础统计
print("数据概况:\n", df.describe())
print("字段缺失情况:\n", df.isnull().sum())

# 🟢 分析1:不同城市的销售额
city_sales = df.groupby('City')['Total'].sum().sort_values(ascending=False)
plt.figure(figsize=(8,5))
sns.barplot(x=city_sales.index, y=city_sales.values, palette='viridis')
plt.title("不同城市销售额比较")
plt.ylabel("总销售额")
plt.xlabel("城市")
plt.tight_layout()
plt.show()

# 🟢 分析2:产品线销售额
product_sales = df.groupby('Product line')['Total'].sum().sort_values()
plt.figure(figsize=(10,6))
sns.barplot(x=product_sales.values, y=product_sales.index, palette='magma')
plt.title("各产品线销售额")
plt.xlabel("总销售额")
plt.ylabel("产品线")
plt.tight_layout()
plt.show()

# 🟢 分析3:每天销售趋势
daily_sales = df.groupby('Date')['Total'].sum()
plt.figure(figsize=(12,5))
daily_sales.plot()
plt.title("每日销售趋势")
plt.ylabel("销售额")
plt.xlabel("日期")
plt.grid(True)
plt.tight_layout()
plt.show()

# 🟢 分析4:不同顾客类型销售对比
plt.figure(figsize=(8,6))
sns.boxplot(data=df, x='Customer type', y='Total', palette='pastel')
plt.title("不同顾客类型的消费分布")
plt.tight_layout()
plt.show()

输出内容:

  1. 不同城市销售额比较:通过柱状图展示不同城市的销售总额,帮助了解各城市销售的差异。

  2. 各产品线销售额:展示每个产品类别(例如健康与美容、时尚配饰等)销售的总额。

  3. 每日销售趋势:展示每日的销售总额,帮助识别销售高峰期或低谷。

  4. 不同顾客类型消费分布:通过箱线图比较会员顾客与普通顾客的消费金额差异。

图表解释:

  • 柱状图:用于展示不同城市和不同产品类别的销售额。

  • 折线图:展示时间序列数据(每日销售额),帮助分析销售趋势。

  • 箱线图:用于显示不同顾客类型的消费差异,反映出顾客类型对销售额的影响。

后续扩展:

  1. 可以进一步分析每个产品类别的客单价和数量关系。

  2. 使用plotly库来进行更精美和交互式的图表展示。

  3. 计算每个销售记录的盈利情况,进一步分析利润来源。

如果需要进一步定制或创建图形界面,可以告诉我。

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值