Cho một ma trận từ một SFrame
:cách hiệu quả để có được những giá trị độc đáo từ 2 hay nhiều cột trong một 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]
Tôi muốn nhận được những giá trị độc đáo cho các cột x
và y
và tôi có thể làm điều đó như vậy:
>>> sf['x'].unique().append(sf['y'].unique()).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
Bằng cách này tôi nhận được giá trị duy nhất của x và giá trị duy nhất của y, sau đó nối chúng và nhận giá trị duy nhất của danh sách nối.
tôi cũng có thể làm điều đó như thế:
>>> sf['x'].append(sf['y']).unique()
dtype: int
Rows: 7
[2, 8, 5, 4, 1, 7, 6]
Nhưng theo cách đó, nếu x của tôi và cột y là rất lớn với rất nhiều bản sao, tôi sẽ phụ thêm nó vào một container rất lớn trước khi nhận độc đáo .
Có cách nào hiệu quả hơn để lấy giá trị duy nhất của cột được tạo từ 2 cột trở lên trong khung nội tuyến không?
Tương đương với gấu trúc theo cách hiệu quả để nhận giá trị duy nhất từ 2 cột trở lên trong pandas
là gì?
Thứ tự xuất phát từ vật chất đầu ra có quan trọng không? Nó sẽ được okay để có đầu ra như là một danh sách hoặc một mảng? – Divakar
[API của SFrame] (https://turi.com/products/create/docs/generated/graphlab.SFrame.html) khá kém so với API Pandas, vì vậy tôi không nghĩ bạn có thể làm điều đó trong nhiều hơn nữa cách hiệu quả so với các giải pháp của bạn. Có lẽ đã đến lúc cân nhắc việc sử dụng [Apache Spark] (http://spark.apache.org/)? – MaxU