Non*_*gon 2 python dataframe pandas pandas-groupby
我正在使用 Pandas 对 Excel 文件中的信息进行分组,并使用此信息对值求和以获得数据摘要。
它从 excel 中提取某些信息,然后对列进行分组以反映我想要的摘要。
summary_df = df.groupby(["NAME", "CITY"])["QUANTITY"].sum().reset_index()
summary_df.loc["Grand Total"] = summary_df["QUANTITY"].sum()
Run Code Online (Sandbox Code Playgroud)
这将返回我想要的信息并给我总和,但它显示了数据框每一列的数量摘要,如下所示:
NAME | CITY | QUANTITY
JOHN | LONDON | 50
STEVE | PARIS | 100
GRAND TOTAL | 150 | 150
Run Code Online (Sandbox Code Playgroud)
我只想查看 QUANTITY 下的总计,而不想查看其他列。
您可以将您的总行添加到您的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 80
Run Code Online (Sandbox Code Playgroud)