I have a data set that I want to plot with a bar chart. There is a categorical column products and a categorical column satisfaction. I wanted to plot the 3 flop products, i.e. products where satisfaction = 1.
I tried .sort_values(by='products', ascending = False)
but unfortunately it orders me the products alphabetically descending.
How can I sort by the category satisfaction = 1 and limit the plot (only the flop3)?
0 stands for satisfied 1 stands for not satisfied
Code:
product_satisfaction= pd.crosstab(index=df.loc[:,'products'],
columns=df.loc[:,'satisfaction'], normalize='index')
product_satisfaction.plot(kind='bar');
Example extract of the dataframe
Data:
df = pd.DataFrame([['product1', 0], ['product3', 0], ['product1', 0],
['product6', 1], ['product1', 1], ['product1', 1],
['product1', 0], ['product4', 0], ['product1', 1],
['product1', 0], ['product2', 0], ['product3', 0],
['product1', 0], ['product6', 0], ['product3', 1],
['product1', 0], ['product4', 0], ['product4', 0],
['product1', 0], ['product2', 0], ['product3', 0],
['product1', 0], ['product1', 0], ['product3', 1],
['product2', 0], ['product1', 0], ['product3', 1],
['product2', 0], ['product4', 0], ['product3', 1],
['product1', 0], ['product6', 0], ['product6', 0],
['product3', 0], ['product3', 0], ['product1', 0],
['product4', 0], ['product3', 0], ['product5', 0],
['product6', 1], ['product2', 0], ['product1', 0],
['product1', 1], ['product5', 0], ['product6', 0],
['product6', 1], ['product1', 0], ['product5', 1],
['product4', 1], ['product4', 0], ['product6', 1],
['product5', 0], ['product2', 0], ['product1', 1],
['product6', 0], ['product1', 0], ['product6', 1],
['product3', 0], ['product2', 0], ['product6', 1],
['product2', 0], ['product1', 0], ['product5', 0],
['product6', 0], ['product6', 0], ['product1', 1],
['product1', 0], ['product2', 1], ['product1', 1],
['product5', 1], ['product3', 1], ['product5', 0],
['product5', 1], ['product2', 1], ['product1', 0],
['product3', 1], ['product1', 1], ['product5', 0],
['product3', 0], ['product2', 0], ['product2', 0],
['product2', 0], ['product1', 0], ['product1', 1],
['product2', 0], ['product1', 0], ['product2', 1],
['product4', 0], ['product3', 0], ['product1', 1],
['product2', 1], ['product5', 0], ['product5', 0],
['product5', 1], ['product1', 0], ['product2', 0],
['product6', 1], ['product5', 0], ['product2', 0],
['product2', 0], ['product6', 0], ['product6', 1],
['product4', 0], ['product3', 0], ['product5', 0],
['product6', 1], ['product2', 0], ['product1', 0],
['product1', 1], ['product5', 0], ['product6', 0],
['product6', 1], ['product1', 0], ['product5', 1],
['product4', 1], ['product4', 1], ['product6', 1],
['product5', 0], ['product2', 1], ['product1', 1],
['product6', 0], ['product1', 1], ['product6', 1],
['product3', 0], ['product2', 0], ['product6', 0],
['product2', 0], ['product1', 0], ['product5', 0],
['product6', 0], ['product6', 0], ['product1', 1],
['product1', 0], ['product2', 1], ['product1', 1],
['product5', 1], ['product3', 1], ['product5', 1],
['product5', 1], ['product2', 1], ['product1', 0],
['product3', 1], ['product1', 1], ['product5', 1],
['product4', 0], ['product4', 0], ['product2', 0]
],columns=['products', 'satisfaction'])
product_satisfaction= pd.crosstab(index=df.loc[:,'products'],
columns=df.loc[:,'satisfaction'], normalize='index')
product_satisfaction