这个问题源于this问题。基本上,我尝试使用matplotlib创建一个热图,坐标为x轴和y轴,值(如该位置上的频率)为热量。我有一个稀疏的字典data[x,y]=值,它位于存储信息的位置,这意味着x-y标签不是连续的
所以我试着用代码来解决这个问题
import pandas as pd
ser = pd.Series(list(data.values()), index=pd.MultiIndex.from_tuples(data.keys()))
df = ser.unstack().fillna(0)
df.shape
除非缺少标签,否则它工作正常。例如,它可能会绘制如下内容:
1 3 4 5
6 50 51 34 76
7 12 10 23 23
9 23 0 70 75
10 10 12 13 40
由于我的问题中的x和y标签代表坐标,我需要它们是完整的和连续的,我希望x标签和y标签在这种情况下可以像[1 2 3 4 5]和[6 7 8 9 10]一样连续,在那些不存在的坐标中自动填充值0
我知道我可以通过简单地在数据集中添加一些点来实现这个目标,例如,在这种情况下添加数据[2,8]=0,ser.unstack().fillna(0)
就可以了。但我不想过多地使用字典,因为它已经足够大了(这就是为什么我将数据存储在稀疏字典而不是密集字典中的原因)。有没有更好的办法?熊猫数据框架提供的功能是否可以轻松实现
目前没有回答
相关问题 更多 >
编程相关推荐