# -*- coding: utf-8 -*- # @Time : 2024/7/25 15:33 # @Author : zhaoxiangpeng # @File : test.py import pandas as pd table = pd.DataFrame([ {"A": 1, "B": 2, "C": 3, "D": 2, "T": "X"}, {"A": 2, "B": 3, "C": 4, "D": 1, "T": "Y"}, {"A": 3, "B": 4, "C": 1, "D": 2, "T": "X"}, {"A": 4, "B": 1, "C": 2, "D": 3, "T": "Z"}, ]) print(table) print('-0'*50) big_table = pd.DataFrame() group_by = table.groupby(by=['T']) for gn, group in group_by: print('gn:', gn) print(group) a = group[["A", "B", "C", "D"]].sum() print(a) f = group[group['D'] == 2] if f.empty: first = group.head(1) else: first = f.head(1) first.loc[:, ("A", "B", "C", "D")] = a print(first) big_table = pd.concat([big_table, first]) print('-0-' * 50) print(big_table)