如何对Pandas value_counts返回结果按索引求和至索引8位置
解决方案
你可以通过布尔索引筛选符合条件的索引对应的值后直接调用sum()方法实现需求,以下是对应代码:
情况1:需求为「所有索引值≤8的对应值求和」
不需要依赖排序逻辑,直接筛选索引即可:
# 先生成value_counts结果 count_s = df_v2.Q_score_diff.value_counts() # 筛选索引≤8的项求和 sum_val = count_s[count_s.index <= 8].sum()
情况2:需求为「按索引降序排序后,从头取到索引为8的位置的所有项求和」
也就是包含所有索引≥8的项,适配你现有排序后的序列:
# 沿用你现有排序逻辑 count_s = df_v2.Q_score_diff.value_counts().sort_index(ascending=False) # 筛选索引≥8的项求和 sum_val = count_s[count_s.index >= 8].sum()
补充说明
你贴出的返回结果里出现了两个8.0的索引,属于粘贴时的重复误差,实际value_counts()返回的Series索引是唯一的,不影响上述代码执行。
内容的提问来源于stack exchange,提问作者Janneman
相关产品推荐
相关产品推荐

