如何用Python选取DataFrame中每个User_ID的最后一行?
如何从DataFrame中选取每个User_ID对应的最后一行数据?
针对你的需求,这里有两种简洁高效的实现方法:
方法1:使用groupby() + tail(1)
这是最直观的分组提取方式,按User_ID分组后直接取每组的最后一行:
import pandas as pd import numpy as np # 示例输入数据 data = pd.DataFrame({'User_ID':['122','122','122','233','233','233','233','366','366','366'], 'Age':[23,23,np.nan,24,24,24,24,21,21,np.nan]}) # 提取每组最后一行并重置索引 data_new = data.groupby('User_ID').tail(1).reset_index(drop=True) print(data_new)
groupby('User_ID'):按用户ID对数据分组tail(1):提取每个分组的最后一行数据reset_index(drop=True):重置结果的索引,避免保留原数据的混乱索引
方法2:使用drop_duplicates()
利用去重功能,指定保留每个User_ID的最后一条记录:
# 保留每个User_ID的最后一条数据 data_new = data.drop_duplicates(subset='User_ID', keep='last').reset_index(drop=True) print(data_new)
subset='User_ID':指定按User_ID字段判断重复项keep='last':保留每组重复项中的最后一条
输出结果
两种方法都会得到你期望的结果:
User_ID Age 0 122 NaN 1 233 24.0 2 366 NaN
内容的提问来源于stack exchange,提问作者captmorgan
相关产品推荐
相关产品推荐

