【问题标题】:How to group condition into "Other" category如何将条件分组到“其他”类别
【发布时间】:2021-10-10 06:08:51
【问题描述】:

我有一个用条形图表示的数据框(下图) 我想将一些带有 (Numbers

条形图:

数据:

            Numbers
Target A    34
Target B    22
Target C    13
Target P    13
Target D    7
Target E    6
Target F    4
Target G    2
Target H    2
Target I    1
Target J    1
Target K    1
Target L    1
Target M    1
Target N    1
Target O    1

【问题讨论】:

  • 请将您的数据框作为文本而不是图像发布。

标签: python-3.x pandas matplotlib charts


【解决方案1】:

这应该可行,您可能需要重置索引,只需将 Labels 替换为您的列名即可。

# values under threshold
other = df.loc[df['Numbers'] < 5]['Numbers'].sum()

new_row = {'Labels': 'Other', 'values': other}
df[df['Numbers'] >= 5].append(new_row, -1)

【讨论】:

    【解决方案2】:

    将索引重置为Target formation 列。然后对于 Numbers &lt; 5 所在的行,将其 Target formation 更改为“其他”:

    df = df.rename_axis('Target formation').reset_index()
    df.loc[df.Numbers < 5, 'Target formation'] = 'Other'
    
    #    Target formation  Numbers
    # 0          Target A       34
    # 1          Target B       22
    # 2          Target C       13
    # 3          Target P       13
    # 4          Target D        7
    # 5          Target E        6
    # 6             Other        4
    # 7             Other        2
    # 8             Other        2
    # 9             Other        1
    # 10            Other        1
    # 11            Other        1
    # 12            Other        1
    # 13            Other        1
    # 14            Other        1
    # 15            Other        1
    

    然后使用groupby.sum 将“其他”聚合为一个条目:

    (df.groupby('Target formation').Numbers
       .sum().sort_values(ascending=False)
       .plot.barh())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      相关资源
      最近更新 更多