Python代码:计算不同商品类别之间的相关系数

这段代码使用Python计算不同商品类别之间的相关系数,旨在帮助你分析不同品类之间的关联性。代码采用皮尔逊相关系数,并使用Pandas和Seaborn库进行数据处理和可视化。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 用来正常显示中文标签


data = pd.read_excel('合并1.xlsx')
data['销售日期'] = pd.to_datetime(data['销售日期'])

data = data.sort_values('销售日期')
selected_data = data.groupby('分类名称').apply(lambda x: x.sample(1)).reset_index(drop=True)

# 创建一个新的DataFrame来存储所选单品的销售数据
selected_sales_data = pd.DataFrame()

# 遍历每个分类名称
for category in selected_data['分类名称']:
    # 获取该分类名称下随机选择的单品的销售数据
    single_product_data = data[(data['分类名称'] == category) & (data['单品名称'] == selected_data.loc[selected_data['分类名称'] == category, '单品名称'].values[0])]
    # 将该单品的销售数据添加到新的DataFrame中
    selected_sales_data = pd.concat([selected_sales_data, single_product_data])

# 创建数据透视表并进行相关性分析
pivot_data = selected_sales_data.pivot_table(values='销量(千克)', index='销售日期', columns='单品名称', aggfunc='sum')
# top_products = data.groupby('单品名称')['销量(千克)'].sum().nlargest(10).index
#
# selected_data = data[data['单品名称'].isin(top_products)]
# # # 选择每个分类名称中的第一个单品
# selected_data = data.groupby('分类名称').first().reset_index()
#
# # 创建一个新的DataFrame来存储所选单品的销售数据
# selected_sales_data = pd.DataFrame()
#
# # 遍历每个分类名称
# for category in selected_data['分类名称']:
#     # 选择该分类名称下的第一个单品的销售数据
#     single_product_data = data[(data['分类名称'] == category) & (data['单品名称'] == selected_data.loc[selected_data['分类名称'] == category, '单品名称'].values[0])]
#     # 将该单品的销售数据添加到新的DataFrame中
#     selected_sales_data = pd.concat([selected_sales_data, single_product_data])
#
# pivot_data = selected_sales_data.pivot_table(values='销量(千克)', index='销售日期', columns=['分类名称', '单品名称'], aggfunc='sum')
# pivot_data = selected_data.pivot_table(values='销量(千克)', index='销售日期', columns=['分类名称', '单品名称'], aggfunc='sum')

# pivot_data = data.pivot_table(values='销量(千克)', index='销售日期', columns='分类名称', aggfunc='sum')
# pivot_data = data.pivot_table(values='销量(千克)', index='销售日期', columns=['分类名称', '单品名称'], aggfunc='sum')
correlation = pivot_data.corr()
print(correlation)

代码解释

  1. 导入库: 导入必要的库,包括 Pandas 用于数据处理、Seaborn 用于数据可视化、matplotlib 用于绘图。
  2. 读取数据: 从名为 '合并1.xlsx' 的 Excel 文件中读取数据,并将 '销售日期' 列转换为日期格式。
  3. 数据整理: 对数据按照 '销售日期' 进行排序,并使用 groupby 函数对每个 '分类名称' 进行分组,并使用 sample(1) 随机选择一个单品。
  4. 创建新的DataFrame: 创建一个新的 DataFrame 来存储所选单品的销售数据。
  5. 遍历分类名称: 遍历每个分类名称,获取该分类下随机选择的单品,并将该单品的销售数据添加到新的 DataFrame 中。
  6. 创建数据透视表: 使用 pivot_table 函数创建数据透视表,以 '销售日期' 为索引,'单品名称' 为列,并使用 '销量(千克)' 为值。
  7. 计算相关性: 使用 corr() 方法计算数据透视表的相关性矩阵,该矩阵中的每个单元格表示对应品类之间的相关系数。

代码的用途

这段代码可以用于计算不同商品类别之间的相关系数,帮助你了解不同类别之间的关联性。例如,你可以通过观察相关性矩阵,判断哪些类别之间存在较强的正相关或负相关关系,从而制定更有效的营销策略。

注: 代码中的 '合并1.xlsx' 文件名和 '销量(千克)' 列名需要根据你的实际情况进行调整。

代码的改进建议

  1. 可以使用 Seaborn 库绘制相关性热图,以便更直观地展示不同类别之间的相关性。
  2. 可以根据实际情况选择其他相关系数计算方法,例如 Spearman 相关系数或 Kendall 相关系数。
  3. 可以将代码封装成一个函数,方便重复使用。

总结

这段代码使用 Python 计算不同商品类别之间的相关系数,可以帮助你分析不同类别之间的关联性,并为制定营销策略提供参考。

Python代码:计算不同商品类别之间的相关系数

原文地址: https://www.cveoy.top/t/topic/nUvM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录