How to replace 'any strings' with nan in pandas DataFrame using a boolean mask?

前端 未结 3 1341
自闭症患者
自闭症患者 2020-12-30 06:48

I have a 227x4 DataFrame with country names and numerical values to clean (wrangle ?).

Here\'s an abstraction of the DataFrame:

import pandas as pd
i         


        
3条回答
  •  感动是毒
    2020-12-30 07:09

    Assign only columns of interest:

    cols = ['Measure1','Measure2']
    mask = df[cols].applymap(lambda x: isinstance(x, (int, float)))
    
    df[cols] = df[cols].where(mask)
    print (df)
      Country Name Measure1 Measure2
    0          uFv        7        8
    1          vCr        5      NaN
    2          qPp        2        6
    3          QIC       10       10
    4          Suy      NaN        8
    5          eFS        6        4
    

    A meta-question, Is it normal that it takes me more than 3 hours to formulate a question here (including research) ?

    In my opinion yes, create good question is really hard.

提交回复
热议问题