gpt4 book ai didi

python - 计算具有相同列和一些不匹配行的两个 pandas 数据帧之间的差异

转载 作者:行者123 更新时间:2023-11-30 21:53:32 24 4
gpt4 key购买 nike

df1

fileName     obj1   obj2   obj3   obj4
file_01.jpg 1 1 1
file_02.jpg 1 1
file_03.jpg 1 2 1

df2

fileName     obj1   obj2   obj3   obj4
file_01.jpg 1 2
file_02.jpg 1 1
file_04.jpg 3 1 2

假设我有两个像上面这样的 pandas DataFrame,问题:如何计算两个之间的差异以获得如下所示的最终 DataFrame?

预期输出
结果

fileName     obj1   obj2   obj3   obj4
file_01.jpg 0 1 -1 0
file_02.jpg 0 0 0 0
file_03.jpg 1 2 0 1
file_04.jpg 0 -3 -1 -2

我已经尝试过的:我通过将两个 DataFrame 合并在一起,然后计算两列之间的差异来达到结果。在SO中提出这个问题,看看是否还有其他有效的方法。

最佳答案

我似乎找不到 groupby 减法,所以我将你的第二个 df 乘以 -1,这样 sum 就可以得到所需的结果

obj_cols = ['obj1', 'obj2', 'obj3', 'obj4']
df2[obj_cols] *= -1

pd.concat([df1, df2]).groupby(['fileName'], as_index=False).sum()

fileName obj1 obj2 obj3 obj4
0 file_01.jpg 0 1 -1 0
1 file_02.jpg 0 0 0 0
2 file_03.jpg 1 2 0 1
3 file_04.jpg 0 -3 -1 -2

关于python - 计算具有相同列和一些不匹配行的两个 pandas 数据帧之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com