You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按Pandas DataFrame第5列Card排序并添加计数行与总计行

Pandas DataFrame分组统计与总计行实现方案

实现步骤:

  • 对DataFrame按Card列排序
  • 按卡号分组计算行数,生成对应统计行
  • 将原数据与统计行按组合并
  • 添加总行数的总计行

代码实现:

import pandas as pd

# 1. 按Card列排序
df_sorted = df.sort_values(by='Card')

# 2. 生成每组的统计行
group_counts = df_sorted.groupby('Card').size().reset_index(name='count')
# 构造和原表结构匹配的统计行,其他列留空(列名根据实际表调整)
group_stats = pd.DataFrame()
group_stats['Card'] = group_counts['Card']
group_stats['Trans Date'] = ''
group_stats['Post Date'] = ''
group_stats['Description'] = ''
group_stats['Amount'] = ''
group_stats['备注'] = f'行数统计: {group_counts["count"].values}'

# 3. 按组合并原数据与统计行
result = pd.DataFrame()
for card in df_sorted['Card'].unique():
    # 提取当前卡号的所有数据行
    data_rows = df_sorted[df_sorted['Card'] == card]
    # 提取当前卡号的统计行
    stat_row = group_stats[group_stats['Card'] == card]
    # 合并到结果表
    result = pd.concat([result, data_rows, stat_row], ignore_index=True)

# 4. 添加总计行
total_row = pd.DataFrame([['总计', '', '', '', '', f'总行数: {len(df)}']], columns=df_sorted.columns)
result = pd.concat([result, total_row], ignore_index=True)

效果对比:

原始DataFrame:
原始DataFrame

期望输出DataFrame:
期望输出DataFrame

内容的提问来源于stack exchange,提问作者Adataguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:42:26