我有一个数据框,其值随时间变化。例如,我在街道上观察到的汽车数量:
df = pd.DataFrame(
[{'Orange': 0, 'Green': 2, 'Blue': 1},
{'Orange': 2, 'Green': 4, 'Blue': 4},
{'Orange': 1, 'Green': 3, 'Blue': 10}
])
我想创建图表来突出显示价值最高的汽车。所以我按最大值排序。
df.loc[:, df.max().sort_values(ascending=False).index]
Blue Green Orange
0 1 2 0
1 4 4 2
2 10 3 1
我正在使用seaborn 来创建这些图表。据我了解,我需要将这种表示形式融合为整洁的格式。
tidy = pd.melt(df.reset_index(), id_vars=['index'], var_name='color', value_name='number')
index color number
0 0 Blue 1
1 1 Blue 4
2 2 Blue 10
3 0 Green 2
4 1 Green 4
5 2 Green 3
6 0 Orange 0
7 1 Orange 2
8 2 Orange 1
如何在数据框熔化之前添加代表列顺序的列?
index color number importance
0 0 Blue 1 0
1 1 Blue 4 0
2 2 Blue 10 0
3 0 Green 2 1
4 1 Green 4 1
5 2 Green 3 1
6 0 Orange 0 2
7 1 Orange 2 2
8 2 Orange 1 2
我发现熔化后仍然可以找到最大列,但我不确定如何将其作为新列添加到数据框中:
tidy.groupby('color').number.max().sort_values(ascending=False).index
Index(['Blue', 'Green', 'Orange'], dtype='object', name='color')
编辑 为了澄清,我将其绘制在折线图上。
axes = sns.relplot(data=tidy, x='index', y='number', hue='color', kind="line")
图表目前的样子是这样的:
我想使用重要性数据来:对线条进行颜色/加粗,或者将图形拆分为多个图形,所以它看起来像这样
互换的青春
qq_遁去的一_1
相关分类