获取非浮点列的DataFrame列名列表

时间:2018-04-08 13:57:34

标签: python pandas

我正在尝试从与非float类型的列对应的DataFrame中获取列名列表。现在我有

categorical = (df.dtypes.values != np.dtype('float64'))

它给了我一个布尔数组,列是否列名不是浮点数,但这不是我正在寻找的。具体来说,我想要一个与我的布尔数组中的'True'值对应的列名列表。

1 个答案:

答案 0 :(得分:2)

boolean indexingdf.columns

一起使用
categorical = df.columns[(df.dtypes.values != np.dtype('float64'))]

difference选择的select_dtypes列:

categorical = df.columns.difference(df.select_dtypes('float64').columns)

样品:

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7.,8,9,4,2,3],
                   'D':[1,3,5.,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

print (df)
   A  B    C    D  E  F
0  a  4  7.0  1.0  5  a
1  b  5  8.0  3.0  3  a
2  c  4  9.0  5.0  6  a
3  d  5  4.0  7.0  9  b
4  e  5  2.0  1.0  2  b
5  f  4  3.0  0.0  4  b

categorical = df.columns.difference(df.select_dtypes('float64').columns)
print (categorical)
Index(['A', 'B', 'E', 'F'], dtype='object')