Python 如何在减去数据帧时保留不存在的类别的值?
我有12个具有累积值的数据帧,我想将它们转换为非累积值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], “价值
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