鉴于从SFrame
矩阵:有效的方式,从2列或多列获得唯一值的数据帧
>>> from sframe import SFrame
>>> sf =SFrame({'x':[1,1,2,5,7], 'y':[2,4,6,8,2], 'z':[2,5,8,6,2]})
>>> sf
Columns:
x int
y int
z int
Rows: 5
Data:
+---+---+---+
| x | y | z |
+---+---+---+
| 1 | 2 | 2 |
| 1 | 4 | 5 |
| 2 | 6 | 8 |
| 5 | 8 | 6 |
| 7 | 2 | 2 |
+---+---+---+
[5 rows x 3 columns]
我想要得到的唯一值的x
和y
列,我能做到这一点因此:
>>> sf['x'].unique().append(sf['y'].unique()).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
这样我就可以得到x的唯一值和y的唯一值,然后附加它们并获得附加列表的唯一值。
我也能做到这一点是这样的:
>>> sf['x'].append(sf['y']).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
但这样一来,如果我的X和Y列是巨大的,有很多重复的,我将其追加到一个非常巨大的容器,得到独特的前。
是否有一种更有效的方法来获取从SFrame中的2列或更多列创建的组合列的唯一值?
在pandas
中,从2个或更多列中获取唯一值的高效方法是什么?
输出中elems的顺序是否重要?将输出作为列表或数组可以吗? – Divakar
[SFrame的API](https://turi.com/products/create/docs/generated/graphlab.SFrame.html)与Pandas API相比相当差,所以我不认为你可以做得更多与您的解决方案相比更有效率。也许该考虑使用[Apache Spark](http://spark.apache.org/)了? – MaxU