I received a DataFrame from somewhere and want to create another DataFrame with the same number and names of columns and rows (indexes). For example, suppose that the origin
You can simply mask by notna() i.e
mask
notna()
df1 = pd.DataFrame([[11, 12], [21, 22]], columns=['c1', 'c2'], index=['i1', 'i2']) df2 = df1.mask(df1.notna()) c1 c2 i1 NaN NaN i2 NaN NaN