Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 评估两个条件_Python_Pandas - Fatal编程技术网

Python 评估两个条件

Python 评估两个条件,python,pandas,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) data_2=data_1.groupby('ID').first()&datetime.date(2012,1,1

我有一个数据集,有两个变量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)
data_2=data_1.groupby('ID').first()&datetime.date(2012,1,1)
这是类型错误。有人能告诉我为什么会有打字错误吗


谢谢。

datetime。日期(2012,2,31)
超出2月的范围。谢谢您的回复,即使更正日期也会出现相同的错误。我将编辑我的问题。首先,我认为您必须将每个条件放在括号中:
(data_1.groupby('ID').First())和(…)
。第二,我认为你应该把第二个条件分成两部分:
(datetime.date(2012,1,1)((data\u 1.groupby('ID').first()['date']>datetime.date(2012,1,1))和(data\u 1.groupby('ID').first()['date']
生成正确的布尔掩码?通常,您应该发布完整的错误消息(以及完整的堆栈跟踪)。
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