Pandas Pivot Table Of Sales
I have a list like below:     saleid                              upc 0   155_02127453_20090616_135212_0021   02317639000000 1   155_02127453_20090616_135212_0021   00000000000888
Solution 1:
Option 1
df.groupby(['saleid', 'upc']).size().unstack(fill_value=0)
Option 2
pd.crosstab(df.saleid, df.upc)
Setup
from StringIO import StringIO
import pandas as pd
text = """    saleid                              upc
0   155_02127453_20090616_135212_0021   02317639000000
1   155_02127453_20090616_135212_0021   00000000000888
2   155_01605733_20090616_135221_0016   00264850000000
3   155_01072401_20090616_135224_0010   02316877000000
4   155_01072401_20090616_135224_0010   05051969277205"""
df = pd.read_csv(StringIO(text), delim_whitespace=True, dtype=str)
df
Solution 2:
simple pivot_table() solution:
In [16]: df.pivot_table(index='saleid', columns='upc', aggfunc='size', fill_value=0)
Out[16]:
upc                                00000000000888  00264850000000  02316877000000  02317639000000  05051969277205
saleid
155_01072401_20090616_135224_0010               0               0               1               0               1
155_01605733_20090616_135221_0016               0               1               0               0               0
155_02127453_20090616_135212_0021               1               0               0               1               0


Post a Comment for "Pandas Pivot Table Of Sales"