gpt4 book ai didi

python - 从 Dataframe 中的 2 个或更多列获取唯一值的有效方法

转载 作者:太空狗 更新时间:2023-10-29 17:32:46 24 4
gpt4 key购买 nike

给定一个来自 SFrame 的矩阵:

>>> 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]

我想获取 xy 列的唯一值,我可以这样做:

>>> 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 个或更多列获取唯一值的有效方法在 pandas 中的等效性是什么?

最佳答案

我没有 SFrame 但在 pd.DataFrame 上测试过:

  sf[["x", "y"]].stack().value_counts().index.tolist()
[2, 1, 8, 7, 6, 5, 4]

关于python - 从 Dataframe 中的 2 个或更多列获取唯一值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38733719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com