如何将多索引转换为热图
How to convert Multi-Index into a Heatmap
Pandas/Python 的新手,我已经成功地建立了如下索引;
MultiIndex([( 1, 1, 4324),
( 1, 2, 8000),
( 1, 3, 8545),
( 1, 4, 8544),
( 1, 5, 7542),
(12, 30, 7854),
(12, 31, 7511)],
names=['month', 'day', 'count'], length=366)
我正在努力寻找如何将第一个数字存储到列表中(1-12 个),将第二个数字存储到另一个列表(1-31 值)中,将第三个数字存储到另一个单独的列表中(分数 0-9000)
我正在尝试构建一个轴上为月 x 日的热图,并使用计数作为值,但失败得很厉害!我假设我必须将月、日和计数分成单独的列表来制作热图?
data1 = pd.read_csv("a2data/Data1.csv")
data2 = pd.read_csv("a2data/Data2.csv")
merged_df = pd.concat([data1, data2])
merged_df.set_index(['month', 'day'], inplace=True)
merged_df.sort_index(inplace=True)
merged_df2=merged_df.groupby(['month', 'day']).count.mean().reset_index()
merged_df2.set_index(['month', 'day', 'count'], inplace=True)
#在这里努力将月份、日期和计数分开以制作热图
您在寻找:
# let start here
merged_df2=merged_df.groupby(['month', 'day']).count.mean()
# use sns
import seaborn as sns
sns.heatmap(merged_df2.unstack('day'))
输出:
或者您可以使用 plt
:
merged_df2=merged_df.groupby(['month', 'day']).count.mean().unstack('day')
plt.imshow(merged_df2)
plt.xticks(np.arange(merged_df2.shape[1]), merged_df2.columns)
plt.yticks(np.arange(merged_df2.shape[0]), merged_df2.index)
plt.show()
给出:
Pandas/Python 的新手,我已经成功地建立了如下索引;
MultiIndex([( 1, 1, 4324),
( 1, 2, 8000),
( 1, 3, 8545),
( 1, 4, 8544),
( 1, 5, 7542),
(12, 30, 7854),
(12, 31, 7511)],
names=['month', 'day', 'count'], length=366)
我正在努力寻找如何将第一个数字存储到列表中(1-12 个),将第二个数字存储到另一个列表(1-31 值)中,将第三个数字存储到另一个单独的列表中(分数 0-9000)
我正在尝试构建一个轴上为月 x 日的热图,并使用计数作为值,但失败得很厉害!我假设我必须将月、日和计数分成单独的列表来制作热图?
data1 = pd.read_csv("a2data/Data1.csv")
data2 = pd.read_csv("a2data/Data2.csv")
merged_df = pd.concat([data1, data2])
merged_df.set_index(['month', 'day'], inplace=True)
merged_df.sort_index(inplace=True)
merged_df2=merged_df.groupby(['month', 'day']).count.mean().reset_index()
merged_df2.set_index(['month', 'day', 'count'], inplace=True)
#在这里努力将月份、日期和计数分开以制作热图
您在寻找:
# let start here
merged_df2=merged_df.groupby(['month', 'day']).count.mean()
# use sns
import seaborn as sns
sns.heatmap(merged_df2.unstack('day'))
输出:
或者您可以使用 plt
:
merged_df2=merged_df.groupby(['month', 'day']).count.mean().unstack('day')
plt.imshow(merged_df2)
plt.xticks(np.arange(merged_df2.shape[1]), merged_df2.columns)
plt.yticks(np.arange(merged_df2.shape[0]), merged_df2.index)
plt.show()
给出: