首页 > 解决方案 > pandads 数据帧比较

问题描述

我在比较三个数据框时遇到问题,其中一个数据框是父数据框,其余两个是子数据框我的目标是找到并替换真正的零代替 NaN,并且如果来自父数据框的任何单元格为零,它应该在子数据框中为零。无法解决问题

我有非常庞大的数据这种任何人都建议我如何解决熊猫数据框的新问题我对此没有任何逻辑

示例数据框:

df                          df2                         df3
name  a    b    c   d       name  a     b    c   d      name  a     b    c    d 
arun  10   20   30  0       arun  6    10   15   20     arun  20    10   15   20
kaka  0    20   0   20      kaka  NaN   9   NaN  20     kaka  NaN   NaN  NaN  20
ve    1    0    20  30      ve    1    NaN   20   30    ve    1     NaN   2   NaN

output 

df2                         df3                        
name  a     b    c   d     name  a     b    c    d
arun  6    10   15   0     arun  20    10   15   0
kaka  0     9   0    20    kaka  0    NaN    0  20
ve    1     0   20   30    ve    1     0     2  NaN
 

标签: python-3.xpandasdataframe

解决方案


尝试:

mask = df1.eq(0)

df2.update(df1.where(mask))
print(df2)

df3.update(df1.where(mask))
print(df3)

印刷:

   name    a     b     c     d
0  arun  6.0  10.0  15.0   0.0
1  kaka  0.0   9.0   0.0  20.0
2    ve  1.0   0.0  20.0  30.0

   name     a     b     c     d
0  arun  20.0  10.0  15.0   0.0
1  kaka   0.0   NaN   0.0  20.0
2    ve   1.0   0.0   2.0   NaN

推荐阅读