python - 如何使用熊猫为每个分组和计数的记录输出每个分组的单个记录
问题描述
我正在使用 Pandas 处理数据文件并尝试以分组形式输出数据,就像 SQL 分组函数一样,每组一个唯一的记录
我有一个包含一些假游戏统计数据的数据文件。我正在尝试按发布年份对游戏进行分组,并显示每组 1 条记录,其中包含年份和当年的游戏数量。到目前为止,我可以计算游戏,但输出包含所有这样计算的记录:
import pandas as pd
print("*** All data count ***")
data = pd.read_csv('../input/games.csv')
print(len(data))
print("*** No duplicates ***")
no_dups = data.drop_duplicates()
print(len(no_dups))
print("*** drop unused columns: type and name for better ")
no_shit = no_dups.drop(['type', 'name', ], axis=1)
print("*** Invalid removed")
cols = ['yearpublished']
no_shit[cols] = no_shit[no_shit[cols] > 0][cols]
clean_data = no_shit.dropna()
print(len(clean_data))
print("*** Valid sorted ***")
sorted_data = clean_data.sort_values(cols)
sorted_data['title_count'] = sorted_data.groupby('yearpublished')['id'].cumcount() + 1
print(sorted_data.tail(20))
现在的输出如下所示,所以我的代码实际上是对记录进行分组,但只显示所有记录而不是最后一个。
> id yearpublished ... average_weight title_count 78848 177659 2016.0 ... 4.0000 296
> 81003 183415 2016.0 ... 0.0000 297
> 79401 179448 2016.0 ... 0.0000 298
> 81107 183684 2017.0 ... 0.0000 1
> 79706 180185 2017.0 ... 0.0000 2
> 80431 181888 2017.0 ... 0.0000 3
> 80676 182408 2017.0 ... 0.0000 4
> 62324 127709 2017.0 ... 2.6667 5
> 76115 170599 2017.0 ... 2.0000 6
> 77249 173635 2017.0 ... 0.0000 7
> 80039 181006 2017.0 ... 0.0000 8
> 65192 135986 2017.0 ... 4.0000 9
> 79263 178958 2017.0 ... 0.0000 10
> 64446 133601 2017.0 ... 0.0000 11
> 64447 133602 2017.0 ... 0.0000 12
> 81247 184151 2017.0 ... 0.0000 13
> 80677 182409 2017.0 ... 0.0000 14
> 79942 180797 2018.0 ... 0.0000 1
> 81294 184349 2018.0 ... 0.0000 2
> 80092 181140 2018.0 ... 0.0000 3
我想有这个输出instad:
id yearpublished ... average_weight title_count
79401 179448 2016.0 ... 0.0000 298
80677 182409 2017.0 ... 0.0000 14
80092 181140 2018.0 ... 0.0000 3
解决方案
推荐阅读
- c# - IdentityServer4 的附加参数授权 url
- javascript - 避免多个嵌套的 if 语句
- linq - EF Core LINQ 使用标量函数
- sql - 语法错误和函数的情况
- reactjs - 将泛型类型的实现传递给 React 组件道具
- ios - 大内存消耗 UITextView
- javascript - jQuery 到 Vue js
- python-2.7 - 在 python elif 语句中添加列表
- scrapy - Scrapy Request方法的meta-args是浅拷贝,而在scrapy_redis中Request方法的meta-args是深拷贝,为什么?
- c++ - Is there a reason why numeric_limits do not work on reference types?