项目场景:
dataframe的分列插补缺失值:
dataframe数据中每列都有很多np.nan,想使用interpolate()进行插补
问题描述
直接遍历各列,使用series.interpolate()没有任何反应
例如:
for col in ['Temp_max','Temp_min', 'Temp_mean' ,'VaporP_mean', 'precipitation_sum', 'windspeed_mean', 'cloudamount']:
meter_data3[col] = meter_data3[col].interpolate()
运行结果nan没有被填充:
解决方案:
需要将Series转换为float64的dtype而不是当前object:
pandas.core.series.Series是object时,使用.interpolate()没有任何反应,把Series转成数据类型,比如Series.astype(float).interpolate()就好了
for col in ['Temp_max','Temp_min', 'Temp_mean' ,'VaporP_mean', 'precipitation_sum', 'windspeed_mean', 'cloudamount']:
meter_data3[col] = meter_data3[col].astype(float).interpolate()