基本上,我的最终结果应该是X
最常见来源国(如这里的R问题How to create heatmap only for 50 highest value)最喜欢的目的地的热图。让我们假设x=2
与下面的小玩具数据框对齐:
import pandas as pd
df = pd.DataFrame({'destination_1': ['Germany', 'France', 'UK', 'India', 'China'],
'destination_2': ['China', 'Vietnam', 'Namibia', 'India', 'UK'],
'destination_3' : ['France', 'Italy', 'Namibia', 'China', 'UK'],
'origin' : ['Germany', 'US', 'UK', 'China', 'UK']})
目的地计数应基于对所有三个目的地变量的提及。为了说明这一点,我对数据进行了分解和透视
df1 = df.melt(id_vars= ['origin'],
value_vars= ['destination_1', 'destination_2', 'destination_3'], var_name='columns')
df_heatmap = df1.pivot_table(index='origin',columns='value',aggfunc='count')
df_heatmap
基本上已经是一个热图,可视化它没有问题。对我来说,唯一的问题是我不知道在哪里/如何放置一个过滤器来只保留x
最常见的源和目的地
当然最好过滤透视表以获得真正的“总计”,但这里有一种方法至少可以获得
x:x
透视表维度。基本上,我使用两个维度中的顶级值计数列表来过滤数据帧,然后再对其进行旋转相关问题 更多 >
编程相关推荐