如何使用Python Pandas从groupby操作计数到新列?

时间:2017-04-27 14:51:39

标签: python pandas

我试图弄清楚如何计算此groupby操作中的所有唯一条形码(在这种情况下为2)。然后我想将计数值写入我的数据帧的新列。我正撞在墙上,到目前为止尝试各种各样的事情都没有成功。非常感谢任何帮助。

parcelno        barcode         product
01565115935496  1234567890123   DPD CLASSIC NP (Europa)  count                 1
                                                         unique                1
                                                         top       1234567890123
                                                         freq                  1
                                Dieselzuschlag           count                 1
                                                         unique                1
                                                         top       1234567890123
                                                         freq                  1
                                Maut                     count                 1
                                                         unique                1
                                                         top       1234567890123
                                                         freq                  1
                                Sicherheitsgebuhr        count                 1
                                                         unique                1
                                                         top       1234567890123
                                                         freq                  1
                                Verzollungsabwicklung    count                 1
                                                         unique                1
                                                         top       1234567890123
                                                         freq                  1
                0987654321097   DPD CLASSIC NP (Europa)  count                 1
                                                         unique                1
                                                         top       0987654321097
                                                         freq                  1
                                Dieselzuschlag           count                 1
                                                         unique                1
                                                         top       0987654321097
                                                         freq                  1
                                Maut                     count                 1
                                                         unique                1
                                                         top       0987654321097
                                                         freq                  1
                                Sicherheitsgebuhr        count                 1
                                                         unique                1
                                                         top       0987654321097
                                                         freq                  1
                                Verzollungsabwicklung    count                 1
                                                         unique                1
                                                         top       0987654321097
                                                         freq                  1

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法计算任何pandas数据框中的唯一列值:

df.barcode.unique()

在你的情况下,它将是

 df["barcode"].unique()

{{1}}

其中df是数据框,条形码是列。

答案 1 :(得分:0)

您展示的是pd.Series。我用这个设置重复了它

设置

mux = pd.MultiIndex.from_product([
        ['01565115935496'],
        ['1234567890123', '0987654321097'],
        ['DPD CLASSIC NP (Europa)', 'Dieselzuschlag', 'Maut', 'Sicherheitsgebuhr', 'Verzollungsabwicklung'],
        ['count', 'unique', 'top', 'freq']
    ], names=['parcelno', 'barcode', 'product', None])

s = pd.Series([1, 1, '1234567890123', 1] * 5 + [1, 1, '0987654321097', 1] * 5, mux)

唯一条形码的数量
请注意,'barcode'pd.Series多重索引的第二级。

s.index.levels[1].nunique()

2

'count'在自己的专栏中

s.unstack()

enter image description here