Python 如何在减去数据帧时保留不存在的类别的值?

Python 如何在减去数据帧时保留不存在的类别的值?,python,pandas,Python,Pandas,我有12个具有累积值的数据帧,我想将它们转换为非累积值 df1=pd.DataFrame({ “管理员”:[1,2], “财务来源”:[“A”、“B”], “PROG”:[150155], “FUNC”:[1,2], “经济”:[30,50], “价值”:[5,10] }) df2=pd.DataFrame({ “管理员”:[1,2,1], “财务来源”:[“A”、“B”、“A”], “PROG”:[150155160], “FUNC”:[1,2,1], “经济”:[30,50,50], “价值

我有12个具有累积值的数据帧,我想将它们转换为非累积值

df1=pd.DataFrame({
“管理员”:[1,2],
“财务来源”:[“A”、“B”],
“PROG”:[150155],
“FUNC”:[1,2],
“经济”:[30,50],
“价值”:[5,10]
})
df2=pd.DataFrame({
“管理员”:[1,2,1],
“财务来源”:[“A”、“B”、“A”],
“PROG”:[150155160],
“FUNC”:[1,2,1],
“经济”:[30,50,50],
“价值”:[10,15,50]
})
每个数据集都有指向不同类别的列(
ADMIN
FIN\u SOURCE
PROG
FUNC
ECON
),对于数据集+1,每个类别中都有更多的唯一值

我想做的是:

indxs=[“ADMIN”、“FIN_SOURCE”、“PROG”、“FUNC”、“ECON”]
(df2.set_index(indxs)-df1.set_index(indxs)).reset_index()
管理FIN_源程序功能经济值
01A1501305.0
1 160 1 50 NaN 35;与
填充值=0一起使用
参数:

indxs = ["ADMIN", "FIN_SOURCE", "PROG", "FUNC", "ECON"]
df = df2.set_index(indxs).sub(df1.set_index(indxs), fill_value=0).reset_index()
print (df)
   ADMIN FIN_SOURCE  PROG  FUNC  ECON  VALUE
0      1          A   150     1    30    5.0
1      1          A   160     1    50   50.0
2      2          B   155     2    50    5.0