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

Pandas分组统计后列名缺失:如何重命名或创建时指定列名

问题

我写了一段Pandas代码,想要整理数据生成DataFrame,用来做Top10游戏发行商的柱状图。但执行groupby分组统计后,统计结果的列名丢了,没法通过列名选中这一列来绘图;而Pandas的rename函数需要指定原列名,现在列名是空的,想问能不能通过索引重命名该列,或者在创建统计结果时直接指定列名?

原始代码
from itertools import count
from platform import platform
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 导入csv文件
data = pd.read_csv("video_game.csv")

# 数据清洗:转换字符串为数值 + 删除不需要的列
data = data.drop(columns=["NA_players", "EU_players", "JP_players", "Other_players", "Global_players", "User_Count", "Rating", "Critic_Count"])

data['User_Score'] = pd.to_numeric(data['User_Score'], errors='coerce')
data = data.replace(np.nan, 0, regex=True)
data['User_Score'] = data['User_Score'].astype(float)

data['Critic_Score'] = pd.to_numeric(data['Critic_Score'], errors='coerce')
data = data.replace(np.nan, 0, regex=True)
data['Critic_Score'] = data['Critic_Score'].astype(float)

# 筛选评分超过90的游戏及其发行商
data = data[['Publisher','Name', 'Critic_Score']]
data = data.query('Critic_Score > 90')
data = data.groupby(['Publisher']).size().sort_values(ascending=False)

print(data)
解决方案

有两种简单的方法解决这个问题:

方法一:分组统计时直接指定列名

groupby.size()返回的是一个Series(索引是发行商,值是数量),没有列名。可以用reset_index(name='列名')直接把它转换成带列名的DataFrame,一步到位:

把最后一行代码改成:

data = data.groupby(['Publisher']).size().reset_index(name='高评分游戏数量')

这样生成的data就是标准的DataFrame,有Publisher和高评分游戏数量两列,之后可以直接通过列名选中数据,比如取Top10并绘图:

# 取Top10发行商
top10_publishers = data.head(10)

# 绘制柱状图
plt.figure(figsize=(12,6))
plt.bar(top10_publishers['Publisher'], top10_publishers['高评分游戏数量'])
plt.title('Top10高评分游戏发行商')
plt.xlabel('发行商')
plt.xticks(rotation=45)
plt.ylabel('高评分游戏数量')
plt.tight_layout()
plt.show()

方法二:对已有结果重命名列

如果已经得到了没有列名的Series,也可以直接修改它的name属性,或者转换成DataFrame后重命名:

方式1:修改Series的name

# 给Series指定名称
data = data.rename('高评分游戏数量')
# 转换成DataFrame
data = data.reset_index()

方式2:reset_index后用rename重命名

data = data.reset_index()
data = data.rename(columns={0: '高评分游戏数量'})

这里因为Series转换成DataFrame后,原数值列的默认列名是0,所以可以直接用这个索引来重命名。

内容的提问来源于stack exchange,提问作者Sinsinful

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:06:26