我有一个有320 K记录的数据集。其中,我想用x轴中类别的前20个实体(在本例中为Refined_ID)通过计数显示一个集群图。如何才能做到这一点?例如,如果我的数据是:
Refined_ID Refined_Age Name
e123 21 foo1
f123 19 bar1
z123 26 foo2
f123 29 bar2
e123 20 foo1
e1342 19 bar3
f123 20 foo3我希望我的x轴被命令为:
e123 f123 z123 这是我的密码:
g = sns.swarmplot(x = dfAnalysis['Refined_ID'].iloc[:20],y = dfAnalysis['Refined_Age'], hue = dfAnalysis['Name'], orient="v")
g.set_xticklabels(g.get_xticklabels(),rotation=30)由于dataframe相当大,所以我将视图限制在前20行进行测试。
更新1
假设没有一种方法可以动态地对海运中的轴进行排序,这就是我希望输出的样子:
Refined_ID Refined_Age Name Count_of_Refined_ID
e123 21 foo1 2
f123 19 bar1 3
z123 26 foo2 1
f123 29 bar2 3
e123 20 foo1 3
e1342 19 bar3 1
f123 20 foo3 3然后,从这个数据中,我想根据两个Refined_ID的计数来绘制它们的前两个。在本例中,这两个类别将是e123和f123。情节将包括:
x-axis: Refined ID (e123 and f123)
y-axis: Refined_Age (0 to 30)
Hue: Based on Name发布于 2016-02-23 22:05:47
这是你想要的吗?
counts = df['Refined_ID'].value_counts()
ix = (df['Refined_ID'].apply(lambda x: counts[x])
.sort_values(ascending=False).index)
df.reindex(ix)
Refined_ID Refined_Age Name
6 f123 20 foo3
3 f123 29 bar2
1 f123 19 bar1
4 e123 20 foo1
0 e123 21 foo1
5 e1342 19 bar3
2 z123 26 foo2https://stackoverflow.com/questions/35587657
复制相似问题