当行和列中多个索引的顶层(Country 1和Country2)相同时,我需要从求和中排除单元格
import pandas as pd
label_columns1 = ['Country1','Country2']
label_columns2 = ['agri1', 'agri2']
label_rows1 = ['Country1','Country2']
label_rows2 = ['agri1', 'agri2']
DF = pd.DataFrame([[1,2,3,4]], index=pd.MultiIndex.from_product([label_rows1,label_rows2]),
columns=pd.MultiIndex.from_product([label_columns1, label_columns2 ]))
DF
Country1 Country2
agri1 agri2 agri1 agri2
Country1 agri1 1 2 3 4
agri2 1 2 3 4
Country2 agri1 1 2 3 4
agri2 1 2 3 4
我知道这将使我得到行式总和和一个新的列
DF[('Total',"Vlaue")] = DF.sum(axis=1)
DF
Country1 Country2 Total
agri1 agri2 agri1 agri2 Value
Country1 agri1 1 2 3 4 10
agri2 1 2 3 4 10
Country2 agri1 1 2 3 4 10
agri2 1 2 3 4 10
我真正想要的并且一直在努力try 的是,只有在列和行索引不同的情况下才添加单元格.例如,在这种情况下,第一行将是7.我的数据框很大,行和列太多. 我到目前为止所try 的
for col in DF.columns:
for row in DF.index:
if col != row:
DF[('Total',"Vlaue")] = DF.sum(axis=1)
这给了我意想不到的结果,但我想我接近了 我的预期结果应该如下所示
Country1 Country2 Total
agri1 agri2 agri1 agri2 Value
Country1 agri1 1 2 3 4 (3+4) = 7
agri2 1 2 3 4 (3+4) = 7
Country2 agri1 1 2 3 4 (1+2) = 3
agri2 1 2 3 4 (1+2) = 3