我用Pandas对Excel文件中的信息进行分组,用这些信息对值进行求和,以获得数据的摘要。
它从excel中提取某些信息,然后对列进行分组,以反映我想要的摘要。
summary_df = df.groupby(["NAME", "CITY"])["QUANTITY"].sum().reset_index()
summary_df.loc["Grand Total"] = summary_df["QUANTITY"].sum()这是返回我想要的信息,并给出总和,但是它显示了dataframe的每个列的数量摘要,如下所示:
NAME | CITY | QUANTITY
JOHN | LONDON | 50
STEVE | PARIS | 100
GRAND TOTAL | 150 | 150我只想看到总量低于数量,而不是其他栏目。
发布于 2018-07-09 13:03:44
您可以将您的总行添加到您的groupby系列中,然后通过reset_index将其转换为数据格式。目前,您正在使用标量填充数据帧的整行,这将触发Pandas使用广播。
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 80https://stackoverflow.com/questions/51246174
复制相似问题