我有以下三个变量的数据集:
- df ['Score']浮点虚拟对象(1或0)
- df ['Province']对象列,其中每一行都是一个区域
- df ['产品类型']指示行业的对象。
我想创建一个联合图,其中在x轴上我具有不同的行业,在y轴上我具有不同的省份,并且作为我的联合图的颜色,我具有得分的相对频率。 这样的事情。 https://seaborn.pydata.org/examples/hexbin_marginals.html
目前,我只能执行以下操作
mean = df.groupby(['Province', 'Product type'])['score'].mean()
但是我不确定如何绘制它。
谢谢!
答案 0 :(得分:0)
如果您要查找热图,则可以使用默认的 final def euclidean(v1: Array[Double], v2: Array[Double]): Double = {
@annotation.tailrec
def go(d: Double, i: Int): Double = {
if(i < v1.size) {
val toPow2 = v1(i) - v2(i)
go(d + toPow2 * toPow2, i + 1)
}
else d
}
sqrt(go(0D, 0))
}
函数。但是,您需要先旋转表。
仅创建一个小示例:
heatmap
我的import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
score = [1, 1, 1, 0, 1, 0, 0, 0]
provinces = ['Place1' ,'Place2' ,'Place2', 'Place3','Place1', 'Place2','Place3','Place1']
products = ['Product1' ,'Product3' ,'Product2', 'Product2','Product1', 'Product2','Product1','Product1']
df = pd.DataFrame({'Province': provinces,
'Product type': products,
'score': score
})
如下:
df
然后:
'Province''Product type''score'
0 Place1 Product1 1
1 Place2 Product3 1
2 Place2 Product2 1
3 Place3 Product2 0
4 Place1 Product1 1
5 Place2 Product2 0
6 Place3 Product1 0
7 Place1 Product1 0
结果是: