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

如何将电影数据分组统计的Series转换为自定义列名的DataFrame?

如何将带多级索引的Series转换为指定格式的DataFrame

问题背景

我有一个存储电影信息的DataFrame,关注Production Company(制作公司)和Award(奖项)列。按制作公司分组统计获奖数量后,得到了一个带多级索引的Series,现在需要将它转换成指定列名的DataFrame。

原始操作代码

mv['Award'] = mv['Award'].astype('string')
mv['Winners'] = mv['Award'] == 'Winner'
mv['Winners']=mv['Winners'].astype('string')
mv['Winners'] = mv['Winners'].str.replace('False','')
mv['Winners'] = mv['Winners'].notnull()
mv['Winners']=mv['Winners'].astype('string')
mv['Winners']=mv['Winners'].str.replace('True','Oscar')
Number_Award = mv.groupby(['Production Company'])['Winners'].value_counts().sort_values(ascending = False).head(3)
print(Number_Award)

原始Series输出

Production Company      Winners
Paramount Pictures      Oscar      33
Warner Bros. Pictures   Oscar      29
MGM Home Entertainment  Oscar      28
Name: Winners, dtype: int64

转换遇到的问题

使用to_frame()转换后,得到的DataFrame列名不符合需求:

Number_Award = Number_Award.to_frame()
Number_Award

输出:

Winners
Production Company  Winners 
Paramount Pictures  Oscar   33
Warner Bros. Pictures   Oscar   29
MGM Home Entertainment  Oscar   28

需要转换成以下目标格式:

Production Company  Award   Number of award
Paramount Pictures  Oscar   33
Warner Bros. Pictures   Oscar   29
MGM Home Entertainment  Oscar   28

解决方法

通过重置多级索引并重命名列即可实现需求,以下是两种常用方案:

方案一:reset_index() + 批量重命名列

# 将Series转为DataFrame并重置多级索引为普通列
df_result = Number_Award.reset_index()
# 直接指定新列名
df_result.columns = ['Production Company', 'Award', 'Number of award']

方案二:先指定列名再重置索引

# 先将Series转为DataFrame,同时指定数值列的名称
df_result = Number_Award.to_frame(name='Number of award')
# 把多级索引转为普通列
df_result = df_result.reset_index()
# 重命名原"Winners"列为"Award"
df_result.rename(columns={'Winners': 'Award'}, inplace=True)

额外优化建议

你之前生成Winners列的代码可以大幅简化,无需多次转换数据类型:

# 向量化操作一步生成获奖标记列
import numpy as np
mv['Winners'] = np.where(mv['Award'] == 'Winner', 'Oscar', '')

内容的提问来源于stack exchange,提问作者Алексей Курочкин

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:35:23