我想用大熊貓來推算一個大的數據矩陣(90 * 90000),然後是一個更大的數據矩陣(150000 * 800000)。 目前我正在測試筆記本電腦上的較小筆記本(8GB RAM,Haswell core 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分鐘。是否有另一個實現可以提高性能?
您可以測試隔離行中包含'NaN'的索引,然後使用'.loc()'手動將單元格設置爲模式。我不知道它是否會給你更好的表現,但它是測試的替代品。 –
@AlexPetralia感謝您的輸入,我試過這種方法,但掩蓋'NaN'值並沒有產生任何重大改進。 – Dahlai