I have a DataFrame in Pandas
      PRICE   Name     PER   CATEGORY   STORENAME
0      9.99    MF      gram  Indica     Store1
1      9.99    HY      gram  Herb       Store2
2      9.99    FF      gram  Herb       Store2
What I want to do is split these into multiple data frames to have unique names, then in those split to category.
Current code:
names = df['STORENAME'].unique().tolist()   #find unique values
store1 = df[df['STORENAME']==names[0]]        
store2 = df[df['STORENAME']==names[1]]
This code works perfectly but I am wondering if there is a Pythonic way since the number of stores may change.
This is needed to plot the difference in prices in categories in stores.
Thanks!
And you can use the following syntax to select unique rows across specific columns in a pandas DataFrame: df = df. drop_duplicates(subset=['col1', 'col2', ...])
To count unique values per groups in Python Pandas, we can use df. groupby('column_name').
I think you can create dictionary of  DataFrames:
dfs = dict(tuple(df.groupby('STORENAME')))
And then select by STORENAME:
store1 = dfs['Store1']
store2 = dfs['Store2']
print (store1)
   PRICE Name   PER CATEGORY STORENAME
0   9.99   MF  gram   Indica    Store1
print (store2)
   PRICE Name   PER CATEGORY STORENAME
1   9.99   HY  gram     Herb    Store2
2   9.99   FF  gram     Herb    Store2
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With