You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:40:24