首页 > 解决方案 > 如何获取与 DataFrame 中最后三个唯一值匹配的最后 n 行?

问题描述

我想获取与n列中Value最后三个唯一值中的任何一个匹配的最后一行Value

这是一个示例数据框:

df = {'Features':['A','A','A','A','C','C','C','C','B','B','B','B'],'Date':['1/3/2023','1/3/2022','1/3/2022','1/3/2021','1/3/2024','5/8/2020','5/8/2021','5/8/2022','6/1/2020','6/1/2019','5/8/2023','5/8/2023'],
'Value':[2,9,4,7,4,5,7,8,0,3,9,9]}
df=pd.DataFrame(df)

   Features Date    Value
0   A   1/3/2023    2
1   A   1/3/2022    9
2   A   1/3/2022    4
3   A   1/3/2021    7
4   C   1/3/2024    4
5   C   5/8/2020    5
6   C   5/8/2021    7
7   C   5/8/2022    8
8   B   6/1/2020    0
9   B   6/1/2019    3
10  B   5/8/2023    9
11  B   5/8/2023    9

例如,对于最后三个唯一值上方的示例数据,最后四行0, 3, 9与之匹配,因此所需的输出将是:

7   B   6/1/2020    0
8   B   6/1/2019    3
9   B   5/8/2023    9
10  B   5/8/2023    9

谁能帮我解决这个问题?

标签: pythonpandasnumpyunique

解决方案


对于基于Value列的唯一值,

>>> df.drop_duplicates(subset='Value').tail(3)
  Features      Date  Value
7        B  6/1/2020      0
8        B  6/1/2019      3
9        B  5/8/2023      9

推荐阅读