我想使用大熊猫估算一个较大的数据矩阵(90 * 90000),然后估算一个更大的数据矩阵(150000 * 800000).
目前,我正在笔记本电脑上测试较小的笔记本电脑(8GB内存,Haswell核心i5 2.2 GHz,较大的数据集将在服务器上运行).
列中有一些缺失值,我想用所有行中最频繁的值来估算.
我的工作代码是:
freq_val = pd.Series(mode(df.ix[:,6:])[0][0], df.ix[:,6:].columns.values) #most frequent value per column, starting from the first SNP column (second row of 'mode'gives actual frequencies)
df_imputed = df.ix[:,6:].fillna(freq_val) #impute unknown SNP values with most frequent value of respective columns
插补在我的机器上花费大约20分钟.是否有另一种可以提高性能的实施方式?
解决方法:
尝试这个:
df_imputed = df.iloc[:, 6:].fillna(df.iloc[:, 6:].apply(lambda x: x.mode()).iloc[0])