如何将旧版Pandas索引代码适配至Pandas 2.0.2?
替代Pandas count()中已弃用的level参数方案
Pandas 2.0及以上版本移除了count()方法的level参数,原代码的核心需求是按用户统计评论数并计算平均值、按影片统计评论数,可以用groupby直接分组计数来替代,逻辑更清晰且符合当前版本规范:
替代代码实现
# 计算用户平均评论数:按user_id分组,统计每个用户的评论数(每条记录对应一条评论) IndUsers = MovieLens.groupby("user_id")["title"].count() print("Average movie reviews per user: ", IndUsers.mean()) # 统计各影片的评论数:按title分组,统计每条影片的评论数 IndMovies = MovieLens.groupby("title")["movie_id"].count() # 或者用更高效的size()(当无缺失值时结果一致):IndMovies = MovieLens.groupby("title").size() print("\nNumber of Reviews Per Movie\n") print(IndMovies)
逻辑说明
原代码中set_index([col1, col2]).count(level=target_col)的本质,就是按target_col分组后统计非缺失值的数量。直接使用groupby(target_col)[某列].count()完全等价,且不需要额外设置多级索引,代码更简洁高效。
如果需要保留多级索引的场景(原代码的第一行示例),也可以用groupby(level="rating")["user_id"].count(),前提是已经设置了多级索引,但对于你的需求来说,直接按列分组更直观。
内容的提问来源于stack exchange,提问作者Hawerchuk
相关产品推荐
相关产品推荐

