扩展到我以前的question
我能很好地用Seaborn绘制出热图,用建议可以得到注释。但我现在看到了一个新问题。
输入文件
Nos,Place,Way,Name,00:00:00,12:00:00
123,London,Air,Apollo,342,972
123,London,Rail,Beta,2352,342
123,Paris,Bus,Beta,545,353
345,Paris,Bus,Rava,652,974
345,Rome,Bus,Rava,2325,56
345,London,Air,Rava,2532,9853
567,Paris,Air,Apollo,545,544
567,Rome,Rail,Apollo,5454,5
876,Japan,Rail,Apollo,644,54
876,Japan,Bus,Beta,45,57
876,Japan,Bus,Beta,40,57
876,Japan,Bus,Beta,40,57
程序:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
df = pd.read_csv('heat_map_data.csv')
df3 = df.copy()
for c in ['Place','Name']:
df3[c] = df3[c].astype('category')
sns.heatmap(df3.pivot_table(index='Place', columns='Name', values='00:00:00' ),annot=True, fmt='.1f' )
plt.show()
fmt='d'
,则得到浮点值的错误,并改为fmt='f'
,得到所需列的计数。但当相同的轴值重复时,它不会从所需列中添加计数。有什么解决办法吗?
在输入文件中可以看到
876,Japan,Bus,Beta,45,57
876,Japan,Bus,Beta,40,57
876,Japan,Bus,Beta,40,57
它有3行重复,其值应显示为sum
代表Japan
和Beta
的细胞不应该值为125
,而应该显示41.7
。我该如何实现?也可以给出两个值作为注释吗?
pivot
中,我给出了value='00:00:00'
,但我需要它从文件中动态读取最后一列。
可以使用aggfunc关键字传入dict:
聚合函数:
哪些输出:
相关问题 更多 >
编程相关推荐