dask df.col.unique() 对比 df.col.drop_duplicates()

dask df.col.unique() vs df.col.drop_duplicates()

在dask中有什么区别

df.col.unique()

df.col.drop_duplicates()

两个 return 系列都包含 df.col 的独特元素。 索引有所不同,unique 结果由 1..N 索引,而 drop_duplicates 由任意查找的数字序列索引。

索引 return 由 drop_duplicates 编辑的意义何在?

如果索引不重要,是否有理由使用一个而不是另一个?

Dask.dataframe 两者都有,因为 Pandas 两者都有,而 dask.dataframe 主要复制 Pandas API。 Unique 是 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