Python 利用pandas多列分组多列求和
一、需求描述: 如下Excel数据 需要按 ASIN、SKU、品名、店铺 对 1-31 的列进行分组求和,实际数据是有很多重复的SKU数据
二、代码实现
import pandas as pd # 从Excel获取数据 df = pd.read_excel(r'C:\\Users\\liuchunlin2\\Desktop\\预警信息汇总.xlsx', sheet_name='Sheet1') """ 使用pandas库中的read_excel()函数从指定的Excel文件中读取数据。 r'C:\\Users\\liuchunlin2\\Desktop\\预警信息汇总.xlsx'为文件路径,需根据实际情况修改。 sheet_name='Sheet1'表示读取Excel文件中名为'Sheet1'的工作表。 读取的数据存储在一个DataFrame对象df中。 """ # 列数据为空的用0填充 df = df.fillna(0) """ 使用fillna()函数将数据框df中的空值(NaN)替换为0,以确保数据框中没有空值。 """ my_list = list(range(1, 32)) """ 使用list()函数和range()函数生成一个包含1到31的整数列表my_list。 这里生成的整数列表是为了后续分组聚合操作使用。 """ # 打印列表 print(my_list) """ 使用print()函数打印my_list列表,便于查看生成的整数列表。 """ # 对数据进行分组聚合操作 grouped_df = df.groupby(['ASIN', 'SKU', '品名', '店铺'])[my_list].sum().reset_index() """ 使用groupby()函数对数据框df进行分组聚合操作。 ['ASIN', 'SKU', '品名', '店铺']是按照这些列进行分组。 [my_list]表示对整数列表中的列进行求和。 sum()表示对这些列进行求和操作。 reset_index()用于重置索引,使分组后的数据重新建立索引。 分组聚合操作后的结果存储在grouped_df数据框中。 """ # 将处理后的数据保存到Excel文件中 grouped_df.to_excel(r'C:\\Users\\liuchunlin2\\Desktop\\预警信息汇总2.xlsx', index=False) """ 使用to_excel()函数将处理后的数据保存到Excel文件中。 r'C:\\Users\\liuchunlin2\\Desktop\\预警信息汇总2.xlsx'为保存的路径和文件名,需根据实际情况修改。 设置index=False表示不保存索引。 """ # 打印处理后的数据 print(grouped_df) """ 使用print()函数打印处理后的数据,便于查看分组聚合操作的结果。 """