Python 熊猫基于另一个数据帧将多个列和行值设置为nan
我有两个大数据帧,Python 熊猫基于另一个数据帧将多个列和行值设置为nan,python,python-3.x,pandas,dataframe,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 1
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
两个数据帧具有相同的索引列Col1
和Col2
以及相同的值列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
我尝试了以下方法:
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
但它不起作用。您可以与一起使用
另一种方式
df1.mask(df1.notna(),df2)
或者
m=df1.notna()
pd.DataFrame(np.where(m, df2, np.nan))
请参见@Ch3steR解决方案的两个备选方案