【问题标题】:how to group by in pandas and tabulate value frequencies如何在熊猫中分组并制表值频率
【发布时间】:2021-06-24 14:17:42
【问题描述】:

我有:

df=pd.DataFrame({'col1':[1,1,1,1,6,6,6,2],'col2':[1,1,1,4,4,4,5,2]})

我想要:

col1 中的每个值进行分组,然后在第二列中显示列表频率(即,第 1 组中有 3 个 1 和 1 4 个显示为 1:3、4:1,即值:频率) .

我还希望列表根据计数按降序排序

【问题讨论】:

    标签: pandas-groupby frequency tabulate


    【解决方案1】:

    不确定这是否是最有效的答案,但我找到的解决方案是:

    gpby = df.groupby('col1')
    vals = []
    for i, row in gpby:
        v = row.col1.values[0]
        c = row.shape[0]
        vc=row.col2.value_counts().reset_index().values.tolist()
        row_values = (v,c,vc)
        vals.append(row_values)
        
    new_df = pd.DataFrame(vals, columns=['value','cnt','vc'])
    new_df
    

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 1970-01-01
      • 2020-09-08
      • 2013-05-09
      • 2020-08-31
      • 2021-01-25
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多