我有一套信息,我希望获得其他所有内容的十大价值。为了详细说明,我想将所有不在TOP 10中的值添加到一起并添加它们以表示标记为&#34的饼图;其他"以及前10个。目前我有以下代码,其中X是我的数据帧:
temp = X.SOME_IDENTIFIER.value_counts()
temp.head(10).plot(kind='pie')
这让我得到了前十名的饼图,但我不想丢弃数据框中的所有其他值。我想将它们添加为图表上的第11个变量,但我不确定如何做到这一点。任何帮助或建议表示赞赏。
答案 0 :(得分:2)
将结果分配给新的数据框(temp2),然后插入一个新记录,该记录将列表中的所有剩余项目相加。它还标识剩余的唯一项目数。
temp = X.SOME_IDENTIFIER.value_counts()
temp2 = temp.head(10)
if len(temp) > 10:
temp2['remaining {0} items'.format(len(temp) - 10)] = sum(temp[10:])
temp2.plot(kind='pie')
答案 1 :(得分:1)
使用熊猫:
# Sort the DataFrame in descending order; will create a Series
s_temp = X.SOME_IDENTIFIER.sort_values(ascending=False)
# Count how many rows are not in the top ten
not_top_ten = len(s_temp) - 10
# Sum the values not in the top ten
not_top_ten_sum = s_temp.tail(not_top_ten).sum()
# Get the top ten values
s_top = s_temp.head(10)
# Append the sum of not-top-ten values to the Series
s_top[10] = not_top_ten_sum
# Plot pie chart
_ = s_top.plot.pie()
# Show plot
plt.show()