通过过滤年份创建一个子集

Create a subset by filtering on Year

我有一个示例数据集,如下所示:

| Id | Year | Price |
|----|------|-------|
| 1  | 2000 | 10    |
| 1  | 2001 | 12    |
| 1  | 2002 | 15    |
| 2  | 2000 | 16    |
| 2  | 2001 | 20    |
| 2  | 2002 | 22    |
| 3  | 2000 | 15    |
| 3  | 2001 | 19    |
| 3  | 2002 | 26    |

我想对数据集进行子集化,这样我就可以只考虑过去两年的值。我想创建一个变量 'end_year' 并将年份值传递给它,然后使用它来对原始数据框进行子集化以仅考虑最近两年。由于我有新数据,所以我想创建变量。我尝试了以下代码,但出现错误。

end_year="2002"
df1=df[(df['Year'] >= end_year-1)]

根据评论,Year 在原始数据中是类型 object。我们应该首先将它转换为 int 然后与数字 end_year:

进行比较
df.Year=df.Year.astype(int) # cast `Year` to `int`
end_year=2002 # now we can use `int` here too
df1=df[(df['Year'] >= end_year-1)]
Id Year Price
1 1 2001 12
2 1 2002 15
4 2 2001 20
5 2 2002 22
7 3 2001 19
8 3 2002 26