Я новичок в Python (используя Anaconda w/Python v3.4.3) и не смог найти этот ответ в любом месте, но он кажется настолько важным, что я должен идти об этом в Неправильный путь.Выбрать записи по групповому условию
import pandas as pd
url = 'https://raw.github.com/pydata/pandas/master/pandas/tests/data/tips.csv'
tips = pd.read_csv(url)
tips.head(5)
Out[1]:
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
Я хотел бы, чтобы выбрать записи, в которых day
группа имеет по крайней мере 50 записей.
sel_days = tips.groupby("day").size() > 50
sel_days
Out[2]:
day
Fri False
Sat True
Sun True
Thur True
dtype: bool
Я вижу, что это серия, но не могу показаться, чтобы выяснить, как генерировать булеву последовательность для выбора строки из исходного набора tips
.
type(sel_days)
Out[3]: pandas.core.series.Series
print(x in sel_days for x in tips["day"])
<generator object <genexpr> at 0x0000000007DBDFC0>
Как бы это сделать?