2014-01-16 54 views
1

如何在沒有循環的數據幀中找到唯一值?在沒有循環的情況下在數據幀中找到唯一值

df1 = pd.DataFrame(np.random.randint(0,105673,size=100).reshape(10,10)) 
df2 = pd.DataFrame(np.random.randint(0,206782,size=100).reshape(10,10)) 
df3 = pd.DataFrame(np.random.randint(0,435612,size=100).reshape(10,10)) 

要找到僅用於一個數據框的唯一值,我已使用pd.unique(df1.values.ravel())。在循環數據框時,使用列表追加唯一值會引發內存錯誤(df1,df2,df3中提到的範圍僅僅是一個示例,實際範圍可能是數百萬)。我該如何處理?

+0

通常當你有一個同構數據框的列表時,你可能只需要一個具有多級索引的大數據框。 – U2EF1

+0

@ U2EF1一個大數據框的問題是內存。這就是我把它們當成塊的原因。 – richie

+0

我們說話有多大?如果一切都符合內存(大塊或單片),我會想象1數據幀更有效率。 –

回答

0

您可以嘗試通過將其展平值轉換爲集set(df.values.ravel())(在設置的數據結構中將自動刪除重複值)來獲取數據框df中的唯一值。

+0

但是,我將不得不循環訪問數據框? – richie

+0

或者使用set union。如果設置了si(dfi.values.ravel()),那麼df1,df2,df3中的唯一值的集合將是s1 | s2 | S3 – user2314737

相關問題