绘制前10个所有其他值

时间:2015-03-23 19:47:18

标签: python python-2.7 pandas

我有一套信息,我希望获得其他所有内容的十大价值。为了详细说明,我想将所有不在TOP 10中的值添加到一起并添加它们以表示标记为&#34的饼图;其他"以及前10个。目前我有以下代码,其中X是我的数据帧:

temp = X.SOME_IDENTIFIER.value_counts()
temp.head(10).plot(kind='pie')

这让我得到了前十名的饼图,但我不想丢弃数据框中的所有其他值。我想将它们添加为图表上的第11个变量,但我不确定如何做到这一点。任何帮助或建议表示赞赏。

2 个答案:

答案 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()