已知python数据框中有一列数据表示商户到用户距离,一列数据表示折扣力度(以比值表示,X:Y表示满X减去Y元,或折扣率表示),一列数据表示消费日期,怎么计算是否消费与距离、折扣率的相关系数,画出是否消费与距离、折扣率的热力图,请给出代码
时间: 2024-04-13 17:28:09 浏览: 109
要计算是否消费与距离和折扣率之间的相关系数,并绘制热力图,你可以使用 pandas 和 seaborn 库。以下是一个示例代码:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 假设你的数据框名为 df,包含列 '距离'、'折扣力度'、'是否消费'
# df = pd.DataFrame(...) # 根据你的实际数据创建数据框
# 计算是否消费与距离的相关系数
distance_corr = df['是否消费'].corr(df['距离'])
# 计算是否消费与折扣力度的相关系数
discount_corr = df['是否消费'].corr(df['折扣力度'])
# 绘制热力图
correlation_matrix = df[['是否消费', '距离', '折扣力度']].corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('是否消费与距离、折扣率的热力图')
plt.show()
```
这段代码首先计算了是否消费列与距离列以及折扣力度列之间的相关系数,并将结果保存在 `distance_corr` 和 `discount_corr` 变量中。然后,利用 seaborn 库的 `heatmap` 函数绘制了相关系数热力图,其中 `annot=True` 表示在热力图上显示数值,`cmap='coolwarm'` 设置颜色映射为冷暖色调。最后,使用 `plt.title` 添加图表标题,并使用 `plt.show` 显示图表。请根据你的实际数据框和列名进行相应的修改。
阅读全文