【问题标题】:Is there a way to replace the values by NaN of one dataframe in the corresponding position of NaN of another dataframe有没有办法在另一个数据帧的 NaN 的相应位置用一个数据帧的 NaN 替换值
【发布时间】:2021-08-04 15:10:07
【问题描述】:

我有两个相同大小的二维数据框。 其中一个数据框在不同位置具有 NaN 值。 现在,我想将另一个数据帧的元素替换为与早期数据帧的 NaN 值的位置相对应的 NaN。

数据框 - 1 0 | 1 | 2 | 3 | :----|:---|:----|:-----| 钠 |钠|钠|钠 | 1.23 |1.25|5.05 | 0 |

数据框 - 2 0 | 1 | 2 | 3 | :----|:---|:----|:-----| 2.05 |1.98|5.45 | 6.23| 1.23 |1.25|5.05 | 0 |

在这个例子中,我想用 NaN 值替换 Dataframe - 2 的第一行,即我想用与 Dataframe-1 的 NaN 值位置对应的 NaN 替换 Dataframe - 2 的元素。 在我真正的问题中,Dataframe 的大小是 17515 X 365

预期输出 数据框 - 2 0 | 1 | 2 | 3 | :----|:---|:----|:-----| 南 |南 |南 |钠 | 1.23 |1.25|5.05 | 0 |

【问题讨论】:

  • 您能否编辑您的问题以很好地格式化它(请参阅我的答案以获取示例)

标签: python pandas dataframe


【解决方案1】:

使用where:

dataframe2.where(~dataframe1.isna(), dataframe1)

或者:

dataframe2.where(~dataframe1.isna(), float('nan'))
>>> dataframe1
      0     1     2    3
0   NaN   NaN   NaN  NaN
1  1.23  1.25  5.05  0.0

>>> dataframe2
      0     1     2     3
0  2.05  1.98  5.45  6.23
1  1.23  1.25  5.05  0.00

输出:

      0     1     2    3
0   NaN   NaN   NaN  NaN
1  1.23  1.25  5.05  0.0

【讨论】:

    猜你喜欢
    • 2016-07-24
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多