首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DataFrame底部添加一行,总计

问在DataFrame底部添加一行,总计
EN

Stack Overflow用户
提问于 2018-07-09 12:58:28
回答 1查看 5.1K关注 0票数 3

我用Pandas对Excel文件中的信息进行分组,用这些信息对值进行求和,以获得数据的摘要。

它从excel中提取某些信息,然后对列进行分组,以反映我想要的摘要。

代码语言:javascript
复制
summary_df = df.groupby(["NAME", "CITY"])["QUANTITY"].sum().reset_index()
summary_df.loc["Grand Total"] = summary_df["QUANTITY"].sum()

这是返回我想要的信息,并给出总和,但是它显示了dataframe的每个列的数量摘要,如下所示:

代码语言:javascript
复制
NAME         |   CITY   |   QUANTITY
JOHN         |  LONDON  |     50
STEVE        |  PARIS   |     100
GRAND TOTAL  |   150    |     150

我只想看到总量低于数量,而不是其他栏目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-09 13:03:44

您可以将您的总行添加到您的groupby系列中,然后通过reset_index将其转换为数据格式。目前,您正在使用标量填充数据帧的整行,这将触发Pandas使用广播。

代码语言:javascript
复制
df = pd.DataFrame([['A', 'LONDON', 10], ['A', 'LONDON', 20],
                   ['B', 'CHICAGO', 30], ['C', 'CHICAGO', 20]],
                  columns=['NAME', 'CITY', 'QUANTITY'])

df_summary = df.groupby(['NAME', 'CITY'])['QUANTITY'].sum()
df_summary.loc['Grand Total'] = df_summary.sum()

df_summary = df_summary.reset_index()

print(df_summary)

          NAME     CITY  QUANTITY
0            A   LONDON        30
1            B  CHICAGO        30
2            C  CHICAGO        20
3  Grand Total                 80
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51246174

复制
相关文章

相似问题

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