2014-01-16 51 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

相关问题