get list of pandas dataframe columns based on data type

前端 未结 12 1391
后悔当初
后悔当初 2020-12-07 07:37

If I have a dataframe with the following columns:

1. NAME                                     object
2. On_Time                                      object
         


        
12条回答
  •  爱一瞬间的悲伤
    2020-12-07 08:06

    You can use boolean mask on the dtypes attribute:

    In [11]: df = pd.DataFrame([[1, 2.3456, 'c']])
    
    In [12]: df.dtypes
    Out[12]: 
    0      int64
    1    float64
    2     object
    dtype: object
    
    In [13]: msk = df.dtypes == np.float64  # or object, etc.
    
    In [14]: msk
    Out[14]: 
    0    False
    1     True
    2    False
    dtype: bool
    

    You can look at just those columns with the desired dtype:

    In [15]: df.loc[:, msk]
    Out[15]: 
            1
    0  2.3456
    

    Now you can use round (or whatever) and assign it back:

    In [16]: np.round(df.loc[:, msk], 2)
    Out[16]: 
          1
    0  2.35
    
    In [17]: df.loc[:, msk] = np.round(df.loc[:, msk], 2)
    
    In [18]: df
    Out[18]: 
       0     1  2
    0  1  2.35  c
    

提交回复
热议问题