熊猫评估两个条件

时间:2017-01-19 08:26:54

标签: python pandas

我有一个带有两个变量ID DATE的数据集。我使用以下代码来获取满足两个条件的行。

1)必须首次出现ID

2)它必须落在特定的日期范围内。

data_2 = data_1.groupby('ID').first() & datetime.date(2012,1,1) < data_1['date'] < datetime.date(2012,2,25)

抛出类型错误。任何人都可以提出为什么我会出现类型错误吗?

感谢。

1 个答案:

答案 0 :(得分:0)

np.random.seed(123)
df = pd.DataFrame({'ID':np.random.choice(list('ABCD'),50),'DATE':pd.date_range('2012-01-01',periods=50)}) 

mask_first = df.DATE.isin(df.groupby('ID')['DATE'].first()) 
    mask_range = (df.DATE >= pd.to_datetime('2012-01-05')) & (df.DATE <= pd.to_datetime('2012-01-07'))
    df[mask_first & mask_range]

输出:

        DATE ID
4 2012-01-05  A