我认为需要select_dtypes 并同时指定floats:
df.select_dtypes(include=[np.float64, np.float32])
示例:
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')})
df['B'] = df['B'].astype(np.float64)
df['C'] = df['C'].astype(np.float32)
df['D'] = df['D'].astype('float')
print (df.dtypes)
A object
B float64
C float32
D float64
E int64
F object
dtype: object
print (df.select_dtypes(include=[np.float64, np.float32]))
B C D
0 4.0 7.0 1.0
1 5.0 8.0 3.0
2 4.0 9.0 5.0
3 5.0 4.0 7.0
4 5.0 2.0 1.0
5 4.0 3.0 0.0
默认float仅选择float64:
print (df.select_dtypes(include=['float']))
B D
0 4.0 1.0
1 5.0 3.0
2 4.0 5.0
3 5.0 7.0
4 5.0 1.0
5 4.0 0.0