【发布时间】:2022-07-20 01:48:37
【问题描述】:
我正在尝试根据 ID 和年份标记行,如果 ID 出现在 [2017,2018,2019] 年份并且 未出现 在 [2020,2021,2022] 中,则需要将其标记为 1 else 0。
df1 = pd.DataFrame({'ID': ['AX1', 'Ax1', 'AX1','AX1','AX1','AX1','AX2','AX2','AX2','AX3','AX3','AX4','AX4','AX4'],'year':[2017,2018,2019,2020,2021,2022,2019,2020,2022,2019,2020,2017,2018,2019]})
ID year
0 AX1 2017
1 Ax1 2018
2 AX1 2019
3 AX1 2020
4 AX1 2021
5 AX1 2022
6 AX2 2019
7 AX2 2020
8 AX2 2022
9 AX3 2019
10 AX3 2020
11 AX4 2017
12 AX4 2018
13 AX4 2019
预期输出:
ID year label
0 AX1 2017 0
1 Ax1 2018 0
2 AX1 2019 0
3 AX1 2020 0
4 AX1 2021 0
5 AX1 2022 0
6 AX2 2019 0
7 AX2 2020 0
8 AX2 2022 0
9 AX3 2019 0
10 AX3 2020 0
11 AX4 2017 1
12 AX4 2018 1
13 AX4 2019 1
在上面的示例中 ID:AX4 被标记为 1,因为它是唯一出现在第一组年份 [2017,2018,2019] 并且没有出现在第二组年份 [2020] 中的 ID ,2021,2022]。
我如何做到这一点?
【问题讨论】:
标签: python python-3.x pandas dataframe