首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对同一年的总价值进行汇总?(熊猫)

如何对同一年的总价值进行汇总?(熊猫)
EN

Stack Overflow用户
提问于 2022-01-03 14:56:10
回答 3查看 508关注 0票数 1

我正在学习用进行的Python数据分析

我有一个销售数据框架的游戏,看起来是这样的:

(这些数据不是真实的,只是出于提问的目的)

代码语言:javascript
复制
Name                Year    Publisher   Total Sales
GTA V               2013    Rockstar    133000
Super Mario Bros    1985    Nintendo    430500
GTA VI              2025    Rockstar    86000
RDR 3               2025    Rockstar    129030
Super Mario Sister  1985    Nintendo    308900
Super Mario End     2000    Nintendo    112100

然后删除名称,并使用以下命令按Publisher名称对其进行分组:

代码语言:javascript
复制
df.drop(columns='Name', inplace=True)
df.groupby(['Publisher','Year','Total Sales']).sum().reset_index()

dataframe现在看起来如下所示:

代码语言:javascript
复制
Publisher   Year    Total Sales
Nintendo    1985    308900
Nintendo    1985    430500
Nintendo    2000    112100
Rockstar    2013    133000
Rockstar    2025    129030
Rockstar    2025    86000

这是好的,但我想把同一出版商同一年的总销售额相加

我想让数据文件看起来像这样:

代码语言:javascript
复制
Publisher   Year    Total Sales
Nintendo    1985    739400
Nintendo    2000    86000
Rockstar    2013    129030
Rockstar    2025    215030

有办法这样做吗?

以下是我的df代码:

代码语言:javascript
复制
data = {'Name':['GTA V','Super Mario Bros','GTA VI','RDR 3','Super Mario Sister','Super Mario End'],'Year':['2013','1985','2025','2025','1985','2000'],
        'Publisher':['Rockstar','Nintendo','Rockstar','Rockstar','Nintendo','Nintendo'],'Total Sales':['133000','430500','86000','129030','308900','112100']}

df = pd.DataFrame(data)
df
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-01-03 15:02:29

使用pivot_table

代码语言:javascript
复制
>>> df.pivot_table('Total Sales', ['Year', 'Publisher'], aggfunc='sum').reset_index()

   Year Publisher  Total Sales
0  1985  Nintendo       739400
1  2000  Nintendo       112100
2  2013  Rockstar       133000
3  2025  Rockstar       215030

注意:如果Total Sales列包含字符串,则将其转换为int (或float):

代码语言:javascript
复制
>>> df.astype({'Total Sales': int}).pivot_table(...)
票数 2
EN

Stack Overflow用户

发布于 2022-01-03 15:09:45

代码语言:javascript
复制
import pandas as pd

data = {'Name':['GTA V','Super Mario Bros','GTA VI','RDR 3','Super Mario Sister','Super Mario End'],'Year':['2013','1985','2025','2025','1985','2000'],
        'Publisher':['Rockstar','Nintendo','Rockstar','Rockstar','Nintendo','Nintendo'],'Total Sales':['133000','430500','86000','129030','308900','112100']}

df = pd.DataFrame(data)
df['Total Sales'] = df['Total Sales'].astype(int)


df.groupby(['Year', 'Publisher'])['Total Sales'].agg('sum').reset_index()
票数 0
EN

Stack Overflow用户

发布于 2022-01-03 15:25:25

这是一种方法:

代码语言:javascript
复制
df.drop(columns='Name', inplace=True)
df['Total Sales'] = pd.to_numeric(df['Total Sales'])
df2 = df.groupby(['Publisher','Year']).sum().reset_index()
df2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70567588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档