The problem comes from the fact that `pairplot` only accepts some pandas types in the `PairGrid`: float or int, but not `Object` or `Int64` for exemple (at least for some versions of matplotlib and/or seaborn: 3.0.3 and 0.9.0 respectivly generates that error).
                        
                        
                        
                        Using `.astype('float')` before plotting in the following exemple should solve the problem as `a.One` is set to `Int64` and `a.Two` is initially an `Object` type:
                        
                        
                        
                        ``` 
                        
                        a = pd.DataFrame()
                        
                        a['One'] = [1, 3, 3, 2, 1]
                        
                        a['One']=a['One'].astype('Int64')
                        
                        a['Two'] = ['yes', 'yes', 'no', 'yes', 'no']
                        
                        a['Two'] = np.where(a['Two'] == 'yes', 1, a['Two'])
                        
                        a['Two'] = np.where(a['Two'] == 'no', 0, a['Two'])
                        
                        a['One']=a['One'].astype('int')
                        
                        a['Two']=a['Two'].astype('int')
                        
                        sns.pairplot(a)
                        
                        plt.show()
                        
                        ```
                        
                        
                        
                        Remark that if you have `NaN` in the dataframe, `float` is your only option as `Int64` accepts missing values but not the `Int` type.
                        
                
             
            
                
                    
                        The problem comes from the fact that `pairplot` only accepts some pandas types in the `PairGrid`: float or int, but not `Object` or `Int64` for exemple (at least for some versions of matplotlib and/or seaborn: 3.0.3 and 0.9.0 respectivly generates that error).
                        
                        
                        
                        Using `.astype('float')` before plotting in the following exemple should solve the problem as `a.One` is set to `Int64` and `a.Two` is initially an `Object` type:
                        
                        
                        
                        ``` 
                        
                        a = pd.DataFrame()
                        
                        a['One'] = [1, 3, 3, 2, 1]
                        
                        a['One']=a['One'].astype('Int64')
                        
                        a['Two'] = ['yes', 'yes', 'no', 'yes', 'no']
                        
                        a['Two'] = np.where(a['Two'] == 'yes', 1, a['Two'])
                        
                        a['Two'] = np.where(a['Two'] == 'no', 0, a['Two'])
                        
                        a['One']=a['One'].astype('int')
                        
                        a['Two']=a['Two'].astype('int')
                        
                        sns.pairplot(a)
                        
                        plt.show()
                        
                        ```
                        
                        
                        
                        The problem comes from the fact that `pairplot` only accepts some pandas types in the `PairGrid`: float or int, but not `Object` or `Int64` for exemple (at least for some versions of matplotlib and/or seaborn: 3.0.3 and 0.9.0 respectivly generates that error).
                        
                        
                        
                        Using `.astype('float')` before plotting in the following exemple should solve the problem as `a.One` is set to `Int64` and `a.Two` is initially an `Object` type:
                        
                        
                        
                        ``` 
                        
                        a = pd.DataFrame()
                        
                        a['One'] = [1, 3, 3, 2, 1]
                        
                        a['One']=a['One'].astype('Int64')
                        
                        a['Two'] = ['yes', 'yes', 'no', 'yes', 'no']
                        
                        a['Two'] = np.where(a['Two'] == 'yes', 1, a['Two'])
                        
                        a['Two'] = np.where(a['Two'] == 'no', 0, a['Two'])
                        
                        a['One']=a['One'].astype('int')
                        
                        a['Two']=a['Two'].astype('int')
                        
                        sns.pairplot(a)
                        
                        plt.show()
                        
                        ```
                        
                        
                        
                        Remark that if you have `NaN` in the dataframe, `float` is your only option as `Int64` accepts missing values but not the `Int` type.