[英]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.