Skip to main content
 首页 » 编程设计

python之如何格式化数据框看起来像这样

2025年05月04日17www_RR

假设我有一个看起来像这样的数据框

A   B    C 
x   xy   6 
x   xz   7 
x   xa   12 
y   ya   2 
y   yb   45 
z   zc   4 

我想重组它,让它给我 A 的总数,然后给我 A 中最大的,例如:

A   B    C    D 
x   25   xa   12 
y   47   yb   45 
z   4    zc   4 

本质上,它所做的是在 A 中按组计算总数,并将其放入 B.. 它找到 A 中最大的实体并将其与 D 中实体的编号一起放入 C。

我如何组织数据框来执行此功能?

请您参考如下方法:

最简单的表达方式

df.set_index('B').groupby('A').C.agg(['sum', 'idxmax', 'max']) 
 
   sum idxmax  max 
A                  
x   25     xa   12 
y   47     yb   45 
z    4     zc    4 

如果您想将列重命名为 'A', 'B', 'C', 'D'

df.set_index('B').groupby('A').C.agg(['sum', 'idxmax', 'max']) \ 
    .rename(columns=dict(sum='B', idxmax='C', max='D')).reset_index() 
 
   A   B   C   D 
0  x  25  xa  12 
1  y  47  yb  45 
2  z   4  zc   4