Pandas 如何在数据透视表中获取总计
正在尝试使用total获得以下结果:Pandas 如何在数据透视表中获取总计,pandas,pivot-table,Pandas,Pivot Table,正在尝试使用total获得以下结果: AssetLifecycleStatus Balance Deployed Type Environment OS Model SupplierA Network 1 Win 10 Model 1 4.0 10.0
AssetLifecycleStatus Balance Deployed
Type Environment OS Model
SupplierA Network 1 Win 10 Model 1 4.0 10.0
Model 2 4.0 7.0
Network 2 Win 10 Model 1 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
SupplierB Network 1 Win 10 Model 1 4.0 8.0
Model 2 4.0 5.0
Network 2 Win 10 Model 3 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
对熊猫和蟒蛇来说都是新鲜事。如何获取数据透视表底部的总计。已尝试concat,但结果不符合预期。索引1、2、3变为单行项。您可以将元组转换为列表,因为元组在更改
4时是不可变的。将第th
元素转换为Total
,然后通过以下方式添加新行:
您还可以使用:
print (df.index[-1])
('SupplierB', 'Network 2', 'Win 7', 'Model 3')
idx = list(df.index[-1])
idx[3] = 'Total'
print (idx)
['SupplierB', 'Network 2', 'Win 7', 'Total']
df.loc[tuple(idx)] = df.sum()
print (df)
Balance Deployed
Type Environment OS Model
SupplierA Network 1 Win 10 Model 1 4.0 10.0
Model 2 4.0 7.0
Network 2 Win 10 Model 1 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
SupplierB Network 1 Win 10 Model 1 4.0 8.0
Model 2 4.0 5.0
Network 2 Win 10 Model 3 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
Total 36.0 54.0
什么是a,b,c,d?我看到许多帖子也使用这种格式,但我没有领会。我认为第二种解决方案更好,所以第一种方案被删除。a、b、c、d解决方案工作得非常好!我终于明白它的用途了。试图理解idx解决方案。
print (df.index[-1])
('SupplierB', 'Network 2', 'Win 7', 'Model 3')
idx = list(df.index[-1])
idx[3] = 'Total'
print (idx)
['SupplierB', 'Network 2', 'Win 7', 'Total']
df.loc[tuple(idx)] = df.sum()
print (df)
Balance Deployed
Type Environment OS Model
SupplierA Network 1 Win 10 Model 1 4.0 10.0
Model 2 4.0 7.0
Network 2 Win 10 Model 1 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
SupplierB Network 1 Win 10 Model 1 4.0 8.0
Model 2 4.0 5.0
Network 2 Win 10 Model 3 10.0 5.0
Win 7 Model 2 NaN 1.0
Model 3 NaN 6.0
Total 36.0 54.0
a,b,c,d = df.index[-1]
df.loc[(a,b,c,'Total')] = df.sum()