簡體   English   中英

Pandas groupby對象過濾

[英]Pandas groupby object filtering

我有一個熊貓數據幀

df.columns
Index([u’car_id’,u’color’,u’make’,u’year’)]

我想創建一個新的FILTERABLE對象,它具有每個組的數量(顏色,品牌,年份);

grp = df[[‘color’,’make’,’year’]].groupby([‘color’,’make’,’year’]).size()

這將返回這樣的東西

color   make   year     count
black   honda  2011   416

我希望能夠過濾它,但是當我嘗試這個時:

grp.filter(lambda x: x[‘color’]==‘black’)

我收到此錯誤

TypeError:'function'對象不可迭代

如何利用'groupby'對象來過濾掉行?

我認為你需要添加reset_index ,然后輸出是DataFrame 上次使用boolean indexing

df = df[['color','make','year']].groupby(['color','make','year'])
                                .size()
                                .reset_index(name='count')


df1 = df[df.color == 'black']

選項1
提前過濾

cols = ['color','make','year']
df[df.color == 'black', cols].grouby(cols).size()

選項2使用xs作為索引橫截面

cols = ['color','make','year']
grp = df[cols].groupby(cols).size()

df.xs('black', level='color', drop_level=False)

要么

df.xs('honda', level='make', drop_level=False)

要么

df.xs(2011, level='year', drop_level=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM