next we might be interested in how many unique customers the retailer is having and how do they stack up in the number of orders they make we are also interested in knowing that what percentage of orders is made by the top customers of the retailer this information is interesting as it would tell us whether the user base of the firm is distributed relatively uniformly in [ ]cs_df customerid unique(shape out[ ]( ,in [ ](cs_df customerid value_counts()/sum(cs_df customerid value_counts())* head( = cumsum(out[ ] namecustomeriddtypefloat this tells us that we have , unique customers but almost of total sales are contributed by only customers (based on the cumulative percentage aggregation in the preceding outputthis is expected given the fact that we have both wholesale and retail customers the next thing we want to determine is how many unique items the firm is selling and check whether we have equal number of descriptions for them in [ ]cs_df stockcode unique(shape out[ ]( ,in [ ]cs_df description unique(shape out[ ]( ,we have mismatch in the number of stockcode and descriptionas we can see that item descriptions are more than stock code valueswhich means that we have multiple descriptions for some of the stock codes although this is not going to interfere with our analysiswe would like to dig little deeper in this to find out what may have caused this issue or what kind of duplicated descriptions are present in the data cat_des_df cs_df groupby(["stockcode","description"]count(reset_index(cat_des_df stockcode value_counts()[cat_des_df stockcode value_counts()> reset_index(head(index stockcode