Python 根据组条件选择记录
我是Python新手(使用Anaconda w/Python v3.4.3),在任何地方都找不到这个答案,但它似乎非常重要,我必须以错误的方式进行Python 根据组条件选择记录,python,python-3.x,pandas,Python,Python 3.x,Pandas,我是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 smok
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
我想选择日
组中至少有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>
类型(选择天数)
Out[3]:pandas.core.series.series
打印(x英寸选择天数,x英寸提示[“天”])
我该怎么做?您想:
我将向映射布尔掩码的
tips
数据帧添加一个新列:
tips['mask'] = tips['day'].map(sel_days)
然后仅选择真值:
tips = tips[tips['mask']]
tips = tips[tips['mask']]