使用DataFrame.iloc,第一个:表示选择所有行,第二个是第7列的所有列:
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':['a',5,4,5,5,4],
'F':[7,'a',9,4,2,3],
'G':[1,3,5,7,1,0],
'H':[4,5,'a',5,5,4],
'I':[7,8,9,4,2,3],
'J':[1,3,5,'a',1,0],
'K':[5,'a',6,9,2,4]
})
print (df.dtypes)
A object
B int64
C int64
D int64
E object
F object
G int64
H object
I int64
J object
K object
dtype: object
df.iloc[:, 6:] = df.iloc[:, 6:].apply(pd.to_numeric, errors='coerce', downcast='float')
print (df.dtypes)
dtype: object
A object
B int64
C int64
D int64
E object
F object
G float64
H float64
I float64
J float64
K float64
dtype: object
如果所有值都是整数:
df.iloc[:, 6:] = df.iloc[:, 6:].astype(np.float64)