2016-03-07 76 views
2

在DASK是什麼DASK df.col.unique()與df.col.drop_duplicates()

df.col.unique() 

df.col.drop_duplicates() 

之間的差都返回包含的獨特元素的一系列df.col。 該指數有差異,unique結果索引1..N而drop_duplicates索引任意查找數字序列。

drop_duplicates返回的索引有什麼意義?

如果索引不重要,是否有任何理由使用另一個?

回答

1

Dask.dataframe具有這兩者,因爲Pandas同時擁有這兩個屬性,而dask.dataframe主要複製Pandas API。獨特是Pandas與Numpy歷史的延續。

In [1]: import pandas as pd 

In [2]: df = pd.DataFrame({'x': [1, 2, 1], 'y': [1., 2., 3.]}, index=pd.Index(['a', 'b', 'A'], name='I')) 

In [3]: df.x.drop_duplicates() 
Out[3]: 
I 
a 1 
b 2 
Name: x, dtype: int64 

In [4]: df.x.unique() 
Out[4]: array([1, 2]) 

在dask.dataframe我們稍有偏差,並選擇使用dask.dataframe.Series而非dask.array.Array,因爲一個不能預先計算數組的長度,因此不能懶洋洋地採取行動。

在實踐中,沒有理由使用unique超過drop_duplicates

+0

一個原因使用'unique'是,它返回一個'numpy.ndarray'而不是熊貓系列。 – Featherlegs