python - Pandas DataFrame - 如何在按另一列分组时获取每列的最新值
问题描述
好吧,伙计们,我被难住了。老实说,我对使用 pandas 操作数据框非常陌生。
假设我有下面的数据框,其中最近的条目位于顶部,按降序排列(我已经根据可用的数据在我的程序中完成了该部分)。
我们将其称为“df_people”,它包含以下数据:
username first middle last
jschmoe joseph NaN schmoe
jdoe jane marie doe
jschmoe joseph michael schmoe
jdoe jane NaN doe
tuser test NaN user
我正在尝试将其解析为仅显示基于“用户名”列的每列中的最新有效数据(或者如果没有有效条目,则当然保留“NaN”)
预期结果:
username first middle last
jschmoe joseph michael schmoe
jdoe jane marie doe
tuser test NaN user
在我的实际数据框中,每当我需要运行此报告时,我将拥有 5-100 列和轻松超过 100k 行。虽然我不期望任何东西对于我想要完成的事情来说都是超快的,但我只是想给出规模,这样你就可以理解即使是小的优化也能产生很大的不同。可靠的结果总是比报告完成快几秒钟更重要!现在我没有结果......所以任何事情都比这更好......
通过浏览这个网站和 pandas 文档,我尝试了很多不同的组合,但我认为我对所有 pandas 的能力缺乏了解,这严重限制了这里。
任何建议或想法将不胜感激!
解决方案
>>> df.groupby('username', as_index=False).first()
username first middle last
0 jdoe jane marie doe
1 jschmoe joseph michael schmoe
2 tuser test NaN user
推荐阅读
- html - 使用 v-else-if 和事件 VueJS
- angular - 失败:模板解析错误:没有将“exportAs”设置为“ngForm”Angular 6 的指令
- vb.net - 将遗留代码转换为参数化查询的问题
- facebook - Facebook Graph API 点赞/评论业务页面推荐
- javascript - 如何阻止模式直到解决 api 请求
- ios - 使用 UIBezierPath bezierPathWithRoundedRect 的单边角半径:得到扭曲的角。任何人都可以帮助实现良好的角落吗?
- windows - 从 IShellView 实例获取列表视图控件句柄
- java - 我们可以根据 id 以外的任何其他唯一字段更新 Keycloak 中的用户吗?
- oracle - SSIS 数据流,忽略 SQL 语句中的 where 子句
- arrays - 如何打乱一组 UIViews