我想在数据框列中绘制项目的频率。我目前拥有以下内容:
cnt_srs = df['item_code'].value_counts().head(N) ## Top N elements
plt.figure(figsize=(16,8))
sns.barplot(cnt_srs.index, cnt_srs.values, alpha=0.8, color=color[7])
plt.ylabel('Number of Occurrences', fontsize=12)
plt.xlabel('Item Code', fontsize=12)
plt.xticks(rotation='vertical')
plt.suptitle('Top 40 Items', fontsize=20)
plt.show()
这基本上绘制了前N个元素的出现次数。有关前15项的信息,请参见下图。
我想做什么:
绘制前N个元素+为剩余元素绘制另一个条形图。 有关可视化,请参见下图。
请帮助我,谢谢。
答案 0 :(得分:0)
这是一种可行的方法。
listy = list()
listy.append(df['item_code'].value_counts()[N:].agg('sum'))
othr_srs = pd.Series(listy[0], index=['others'])
cnt_srs = cnt_srs.append(othr_srs)
我刚刚总结了数据框列中的剩余计数,并为此创建了一个单独的系列,然后加入了这两个系列。
可能有一种更简单的方法可以做到这一点,但这就是我提出来的。