Biorąc pod uwagę macierz z SFrame
:Skuteczny sposób na uzyskanie unikalnych wartości od 2 lub więcej kolumn w Dataframe
>>> 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]
chcę uzyskać unikatowe wartości dla x
i y
kolumn i mogę to zrobić takie jak:
>>> sf['x'].unique().append(sf['y'].unique()).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
ten sposób uzyskać unikalne wartości X i unikalne wartości y, a następnie dołączyć je i uzyskać unikalne wartości załączonej listy.
mogę też zrobić to w następujący sposób:
>>> sf['x'].append(sf['y']).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
Ale w ten sposób, jeśli x i y kolumny są ogromne z dużą ilością powtórzeń, byłbym dołączenie go w bardzo wielkim pojemniku przed uzyskaniem wyjątkowy .
Czy istnieje skuteczniejszy sposób uzyskania unikatowych wartości połączonych kolumn utworzonych z co najmniej dwóch kolumn w ramce SFrame?
Jaka jest równoważność w pandach efektywnego sposobu uzyskiwania unikatowych wartości z 2 lub więcej kolumn w pandas
?
Czy kolejność elementów wyjściowych ma znaczenie? Czy byłoby dobrze mieć wynik jako listę lub tablicę? – Divakar
[Interfejs API SFrame] (https://turi.com/products/create/docs/generated/graphlab.SFrame.html) jest dość słaba w porównaniu do Pandas API, więc nie sądzę, że można to zrobić w znacznie więcej skuteczny sposób w porównaniu do twoich rozwiązań. Może czas rozważyć użycie [Apache Spark] (http://spark.apache.org/)? – MaxU