从excel文件加载数据帧时,我需要识别两个具有字符串值的特定列之间的所有列。如何根据列的数据类型筛选或获取列的索引?
使用DataFrame.loc
按开始和结束列进行选择,然后按DataFrame.select_dtypes
和np.number
:查看编号
df1 = df.loc[:, 'start col':'end col'].select_dtypes(np.number)
如果需要不带numbers
:的列
df2 = df.loc[:, 'A':'C'].select_dtypes(exclude=np.number)
您可以将select_dtypes
与接受类型列表的include
参数一起使用。
df = pd.DataFrame({'A' : [0,1,2,3],
'B' : ['A','B','C','D'],
'C' : [0.1,0.2,0.3,0.4],
'D' : ['C','F','I','L']})
print(df)
A B C D
0 0 A 0.1 C
1 1 B 0.2 F
2 2 C 0.3 I
3 3 D 0.4 L
start = 0
end = 5
df.iloc[:,start:end].select_dtypes(include=['float64','Int64'])
A C
0 0 0.1
1 1 0.2
2 2 0.3
3 3 0.4