Selecting groups fromed by groupby function

て烟熏妆下的殇ゞ 提交于 2019-12-23 12:18:40

问题


My dataframe:

 df1

group     ordercode      quantity
 0            A             1
              B             3
 1            C             1
              E             2
              D             1

I have formed each group bygroupby function.

I need to extract the data by using group number.

My desired ouput.

In:get group 0 out:

   ordercode      quantity
       A             1
       B             3

or

 group     ordercode      quantity
 0            A             1
              B             3

any suggestion would be appreciated.


回答1:


Use DataFrame.xs, also is possible use parameter drop_level=False:

#if need remove original level

df1 = df.xs(0)
print (df1)
           quantity
ordercode          
A                 1
B                 3

#if avoid remove original level
df1 = df.xs(0, drop_level=False)
print (df1)
                 quantity
group ordercode          
0     A                 1
      B                 3

EDIT:

dfs = [df1, df2, df3]
dfs = [x[x['group'] == 0] for x in dfs]
print (dfs)



回答2:


In [131]: df.loc[pd.IndexSlice[0,:]]
Out[131]:
           quantity
ordercode
A                 1
B                 3

or

In [130]: df.loc[pd.IndexSlice[0,:], :]
Out[130]:
                 quantity
group ordercode
0.0   A                 1
      B                 3



回答3:


You can use GroupBy.get_group after specifying columns. Here's a demo:

df = pd.DataFrame({'A': ['foo', 'bar'] * 3,
                   'B': np.random.rand(6),
                   'C': np.arange(6)})

gb = df.groupby('A')

print(gb[gb.obj.columns].get_group('bar'))

     A         B  C
1  bar  0.523248  1
3  bar  0.575946  3
5  bar  0.318569  5


来源:https://stackoverflow.com/questions/52661673/selecting-groups-fromed-by-groupby-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!