我有一个像下面这样的Pandas数据框。我找到每个OWNNAME(1,2)
的TOTACTVAL值的总和 OWNNAME1 OWNNAME2 TOTACTVAL
0 Fred John 100
1 Scott Fred 200
2 John Pascal 150
3 Connor Fred 50
我期望的结果按照TOTACTVAL排序
Name TOTACTVAL
Fred 350
John 250
Scott 200
Pascal 150
Connor 50
答案 0 :(得分:1)
在' TOTACTVAL'上设置索引并取消堆叠到-1级并重置索引
using ProjectB;
//...
public void MyFunc()
{
var unitOfWork = new UnitOfWork(1);
// ...
var context = unitOfWork.Context;
// ...
}
重命名未堆叠的列
newdf = df.set_index('TOTACTVAL').unstack(-1).reset_index()
分组,总和和排序。需要newdf.rename(columns={0: 'Name'}, inplace=True)
才能将生成的系列(包含reset_index
索引)转换回包含两列(Name
,Name
)
TOTACTVAL
打印:
newdf = newdf.groupby('Name')['TOTACTVAL'].apply(sum).reset_index()
newdf.sort('TOTACTVAL', ascending=False)