我有一个 dataframe 在 Pandas 中,其最后三列名字为 'Replicate a','Replicate b','Replicate c'。我想将这三列转化为 floa32格式,并使用如下代码:
df_deal.iloc[:,-3:] = df_deal.iloc[:,-3:].apply(pd.to_numeric, errors='coerce').astype('float32') # 这里用位置索引,索引最后三列
但是这个代码跑完以后,数据格式并有变化依然是object
print(df_deal.iloc[:,-1].dtypes)
print(df_deal.iloc[:,-2].dtypes)
print(df_deal.iloc[:,-3].dtypes)
结果全是object
有人说,多列索引的时候得到的是副本,于是我使用循环一列一列修改:
for i in range(-3,0):
df_deal.iloc[:,i] = df_deal.iloc[:,i].apply(pd.to_numeric, errors='coerce').astype('float32')
但结果依然是 object
数据后三列见图: