python - Groupby 并将特定函数应用于某些列并获取 df Pandas 的第一个或最后一个值
问题描述
我想对具有大量列的数据框进行分组,但仅将函数(sum、mean 等)应用于两列并获取剩余列的第一个值。我怎样才能做到这一点?在引用的帖子中,以下代码有效,但是当我将“esle x.mean()”替换为“esle x.first()”时,它不再有效。
df = df.groupby('id').agg(lambda x : x.count() if x.name in ['var1','var2'] else x.mean())
有任何想法吗?
解决方案
尝试使用x.iloc[0]
第一个值和x.iloc[-1]
最后一个值:
df = df.groupby('id').agg(lambda x : x.count() if x.name in ['var1','var2'] else x.iloc[0])
推荐阅读
- php - 在 Laravel 5.7 上确定每个用户级别/角色的布局
- python-3.x - 带有 AES CBC 的 AWS KMS python3.6 和 boto3 示例
- go - 使用 Golang 导出导入
- swift - UICollectionViewCell 委托不会触发
- python - 删除停用词 - Python
- mysql - Jquery Datatable:使用 Left Join 和 Where 子句计算记录
- angularjs - 为什么即使在我们调用其余调用的同一服务器上运行 Angular 应用程序也会出现 cors 问题
- javascript - 什么是 browsertools://browsertools.library.js?
- windows - apache mahout ALS 可以在没有 hadoop 的情况下工作吗?
- gcc - 确定 ELF 二进制文件是否使用优化构建