python-提高 pandas dataframe 的插补性能

我想使用大 pandas 估算一个较大的数据矩阵(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])