我试图弄清楚如何计算此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
答案 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()