python - Pandas 根据另一个数据帧将多个列和行值设置为 nan

标签 python python-3.x pandas dataframe

我有两个大型数据框,df1:

Col1    Col2    Val1    Val2    Val3
asd     ASYL    4.2             4.2
ppq     CONE            35      35
DA      HU      100     100

df2

Col1    Col2    Val1    Val2  Val3
asd     ASYL    7       12    17
ppq     CONE    17      19    19
DA      HU      5       14    13

两个数据帧具有相同的索引列 Col1Col2 以及相同的值列 Val1、Val2、Val3

我想将df2中的值设置为nan,其中df1中的值是Null以获取以下:

Col1    Col2    Val1    Val2  Val3
asd     ASYL    7             17
ppq     CONE            19    19
DA      HU      5       14      

我尝试了以下方法:

idx = df1.isnull()
df2.loc[idx] = np.nan

但是它不起作用。

最佳答案

您可以使用df.wheredf.notna

df2.where(df1.notna())

Col1    Col2    Val1   Val2  Val3
asd     ASYL    7      NaN    17
ppq     CONE   NaN      19    19
DA      HU      5       14    NaN   

关于python - Pandas 根据另一个数据帧将多个列和行值设置为 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62230408/

相关文章:

python - 如何根据Python中选择列右侧每行中的nan的数量对数据帧进行子集化?

python - 如何从 python 中的日期时间系列中删除年月日?

python - Subprocess.popen - 从属写入失败 : Broken pipe; aborting

python - 返回给定字典键的下一个键,python 3.6+

python - 在 mac (Big Sur) 上导入模块的问题,以及 sys.executable 和包的位置不匹配?

python - Python 中的树似乎构建不正确

Python 3.x tkinter : Buttons of specific shapes or Button overlay

python - 如何判断两个网页内容是否相似?

python - 使用 urllib 更改 URL 的主机名

python - 在数据框中查找并替换部分字符串?