繁体   English   中英

如何找到 dataframe 中包含特定列中特定值的最后一行?

[英]How to find the last row in a dataframe that contains a specific value in a specific column?

我正在寻找一个 Python function,它将允许我为我的 dataframe 中的每个人检索我的 dataframe 最后一行的“日期”列中的信息。这是因为我需要知道每个人的最后日期dataframe 输入数据。

我尝试按人拆分 dataframe,然后使用 tail() function 查找最后一行中所有列的信息,然后获取日期,但这对于包含很多人的大型 dataframe 不起作用。

   name   score    date
1  Mary   2        22-Feb-2022
2  Mary   1        16-Mar-2022
5  John   2        18-Dec-2022
6  Mary   3        01-Jan-2023 

一个可能的解决方案:

df.groupby('name')['date'].last()

Output:

name
John   2022-12-18
Mary   2023-01-01
Name: date, dtype: datetime64[ns]

如果要将最后日期添加到 dataframe:

df['last_date'] = df.groupby('name')['date'].transform('last')

Output:

   name  score       date  last_date
1  Mary      2 2022-02-22 2023-01-01
2  Mary      1 2022-03-16 2023-01-01
5  John      2 2022-12-18 2022-12-18
6  Mary      3 2023-01-01 2023-01-01

如果你想要每个名字的最后一次迭代,你可以使用drop_duplicates

# Assume your dataframe is already sorted by date
>>> df.drop_duplicates('name', keep='last')

   name  score         date
5  John      2  18-Dec-2022
6  Mary      3  01-Jan-2023

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM