Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于数据帧中另一个数据帧的掩码值在数据帧中生成NaN_Python_Python 3.x_Pandas_Python 2.7_Dataframe - Fatal编程技术网

Python 基于数据帧中另一个数据帧的掩码值在数据帧中生成NaN

Python 基于数据帧中另一个数据帧的掩码值在数据帧中生成NaN,python,python-3.x,pandas,python-2.7,dataframe,Python,Python 3.x,Pandas,Python 2.7,Dataframe,我有一个数据框 df1 = pd.DataFrame([["A",1,98,56,51], ["B",1,99,74,36], ["C",1,97,82,83],["B",1,96,31,90], ["C",1,45,92,12], ["A",1,67,33,55]], columns=["id","date","c1"

我有一个数据框

df1 = pd.DataFrame([["A",1,98,56,51], ["B",1,99,74,36], ["C",1,97,82,83],["B",1,96,31,90], ["C",1,45,92,12], ["A",1,67,33,55]], columns=["id","date","c1","c2","c3"])
我有另一个数据帧具有相同的列名

df2 = pd.DataFrame([["A",1,False,False,True], ["B",1,False,False,True], ["C",1,False,False,False],["B",1,False,True,False], ["C",1,True,False,True], ["A",1,False,True,False]], columns=["id","date","c1","c2","c3"])
我想要一个数据帧df_out,其中值在df2中为True,在df1中替换为blank/nan,如果为False,则保持在df1中的状态

预期输出:

df_out = pd.DataFrame([["A",1,98,56, ""], ["B",1,99,74,""], ["C",1,97,82,83],["B",1,96,"",90], ["C",1,"",92,""], ["A",1,67,"",55]], columns=["id","date","c1","c2","c3"])

如何操作?

尝试使用
where

l = ['c1','c2','c3']
df1[l] = df1[l].where(df2[l]==False,'')
df1
Out[199]: 
  id  date  c1  c2  c3
0  A     1  98  56    
1  B     1  99  74    
2  C     1  97  82  83
3  B     1  96      90
4  C     1      92    
5  A     1  67      55