我有一个带有两个变量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)
抛出类型错误。任何人都可以提出为什么我会出现类型错误吗?
感谢。
答案 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