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