解决方案:使用aggfunc='size'
使用aggfunc=len或aggfunc='count'与此页上的所有其他答案一样,对于包含三列以上的数据帧不起作用。默认情况下,pandas会将此aggfunc应用于index或columns参数中未找到的所有列。
例如,如果在原始数据框中定义了两个以上的列,则如下所示:df = pd.DataFrame({'Account_number':[1, 1, 2 ,2 ,2 ,3 ,3],
'Product':['A', 'A', 'A', 'B', 'B','A', 'B'],
'Price': [10] * 7,
'Quantity': [100] * 7})
输出:Account_number Product Price Quantity
0 1 A 10 100
1 1 A 10 100
2 2 A 10 100
3 2 B 10 100
4 2 B 10 100
5 3 A 10 100
6 3 B 10 100
如果将当前解决方案应用于此数据帧,将得到以下结果:df.pivot_table(index='Account_number',
columns='Product',
aggfunc=len,
fill_value=0)
输出:Price Quantity
Prod