我在Pandas中有一个DataFrame
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
我想要做的是将它们分成多个数据框以具有唯一的名称,然后分成那些分类。
当前代码:
names = df['STORENAME'].unique().tolist() #find unique values
store1 = df[df['STORENAME']==names[0]]
store2 = df[df['STORENAME']==names[1]]
此代码完美无缺,但我想知道是否存在Pythonic方式,因为商店数量可能会发生变化。
这需要绘制商店中类别的价格差异。
谢谢!
答案 0 :(得分:10)
我认为你可以创建dictionary of DataFrames
:
dfs = dict(tuple(df.groupby('STORENAME')))
然后按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