使用Seaborn创建热图图时数据帧旋转出现问题

2024-04-28 19:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过用seaborn制作热图。我使用的数据帧是:https://raw.githubusercontent.com/resbaz/r-novice-gapminder-files/master/data/gapminder-FiveYearData.csv

数据集有5列,即:国家、年份、流行语、大陆、lifeExp和gdpPercap。我想创建一个透视表数据框,其中沿x轴的年份、沿y轴的大陆和单元格中填充的lifeExp,然后将其绘制到热图中。你知道吗

我做的第一件事是使用代码透视数据帧

df1 = pd.read_csv('https://raw.githubusercontent.com/resbaz/r-novice-gapminder-files/master/data/gapminder-FiveYearData.csv')
df2 = df1.pivot('year','continent','lifeExp')

但是有个错误。你知道吗

所以,我试着把代码改成:

df = pd.read_csv('https://raw.githubusercontent.com/resbaz/r-novice-gapminder-files/master/data/gapminder-FiveYearData.csv')
print(df.head())
df2 = df.pivot_table(values= 'lifeExp', index=['year', 'continent'])
print(df2)

df2的输出是这样的

             lifeExp

year continent
1952 Africa 39.135500 Americas 53.279840 Asia 46.314394 Europe 64.408500 Oceania 69.255000 1957 Africa 41.266346 Americas 55.960280 Asia 49.318544 Europe 66.703067 Oceania 70.295000 .....

当我想把它设计成seaborn的时候

sns.heatmap(df2)

lifeExp无法填满热图。你知道吗

如何修复?你知道吗


Tags: csv数据httpsmastercomdatarawfiles
1条回答
网友
1楼 · 发布于 2024-04-28 19:33:35

你好,EBUZ168

在我看来,你把“年”和“洲”都设置为索引,而没有设置为列。查看documentation函数调用应该如下所示:

table = df.pivot_table(values='lifeExp', index='year', columns='continent', aggfunc=np.mean)
sns.heatmap(table)

相关问题 更多 >