(必须在循环中工作)
Groupby
获取我的DF的子集。MICE imputation
应用于该结果组(子集)的2列。numpy array
,现在已推算NaN值。 (到目前为止一切都很好)
请注意,右下角的值(5.07e + 9)已正确估算(忽略float64
中的年份)
将估算的2d_array返回Origianl DF的最佳方法?
groupby
的{{1}}是否自动处理此问题?
Transform
想定义一个函数或使用df = ['country', 'series', 'year', 'value']
a_given_country_series_group = df.groupby(['country', 'series'])
for value_column in a_given_country_series_group,
if np.nan is present in value_column (or a_given_country_series_group) #either should be fine
#apply imputation to group via:
mice((a_given_country_series_group[['year', 'value']]).values) #Returns imputed 2d array of that group
#All good so far...
#put resulting 2d_array back into original df, then go to the next country_series_group and repeat with next grouping
来将估算的结果恢复为原始结果,但这是最好的方法吗?