PANDAS通过唯一值行将数据帧拆分为多个

时间:2017-12-12 09:43:38

标签: python pandas dataframe

我在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方式,因为商店数量可能会发生变化。

这需要绘制商店中类别的价格差异。

谢谢!

1 个答案:

答案 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