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

问题描述 投票:0回答:1

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

df1 = pd.DataFrame({
    "ADMIN": [1, 2],
    "FIN_SOURCE": ["A", "B"],
    "PROG": [150, 155],
    "FUNC": [1, 2],
    "ECON": [30, 50],
    "VALUE": [5, 10]
})

df2 = pd.DataFrame({
    "ADMIN": [1, 2, 1],
    "FIN_SOURCE": ["A", "B", "A"],
    "PROG": [150, 155, 160],
    "FUNC": [1, 2, 1],
    "ECON": [30, 50, 50],
    "VALUE": [10, 15, 50]
})

每个数据集都有指向不同类别的列(ADMINFIN_SOURCEPROGFUNCECON),对于数据集+1,每个类别中都有更多唯一值。

我尝试做的事情:

indxs = ["ADMIN", "FIN_SOURCE", "PROG", "FUNC", "ECON"]
(df2.set_index(indxs) - df1.set_index(indxs)).reset_index()

    ADMIN   FIN_SOURCE  PROG    FUNC    ECON    VALUE
0   1       A           150     1       30      5.0
1   1       A           160     1       50      NaN    #<- I want to keep it as 50 (value in df2 before sub)
2   2       B           155     2       50      5.0

python pandas
1个回答
0
投票
DataFrame.subDataFrame.sub参数一起使用:

fill_value=0

© www.soinside.com 2019 - 2024. All rights reserved.