graphlab - sframe:如何删除列上具有相同 ID 和条件的行?

graphlab - sframe : How to remove rows which have same ids and condition on a column?

我有一个 graphlab sframe 数据框,其中几行在 "uid" 列中具有相似的 id 值。

| VIM Document Type | Vendor Number & Zone | Value <5000 or >5000 | Today Status |
+-------------------+----------------------+----------------------+--------------+
|     PO_VR_GLB     |     1613407EMEAi     |    Less than 5000    |      0       |
|     PO_VR_GLB     | 249737LATIN AMERICA  |    More than 5000    |      1       |
|     PO_MN_GLB     | 1822317NORTH AMERICA |    Less than 5000    |      1       |
|     PO_MN_GLB     | 1822317NORTH AMERICA |    Less than 5000    |      1       |
|     PO_MN_GLB     | 1822317NORTH AMERICA |    Less than 5000    |      1       |
|     PO_MN_GLB     | 1216902NORTH AMERICA |    More than 5000    |      1       |
|     PO_MN_GLB     |     1213709EMEAi     |    Less than 5000    |      0       |
|     PO_MN_GLB     | 882843NORTH AMERICA  |    More than 5000    |      1       |
|     PO_MN_GLB     | 2131503ASIA PACIFIC  |    More than 5000    |      1       |
|     PO_MN_GLB     | 2131503ASIA PACIFIC  |    More than 5000    |      1       |
+-------------------+----------------------+----------------------+--------------+
+---------------------+
|         uid         |
+---------------------+
|      63068$#069     |
|       5789$#13      |
| 12933036$#IN6532618 |
| 12933022$#IN6590132 |
| 12932349$#IN6636468 |
|   12952077$#203250  |
| 13012770$#MUML04184 |
|   12945049$#112370  |
|  13582330$#CI160118 |
|  13012770$#MUML04184|

在这里,我想保留所有具有唯一uid的行,并且只保留具有相同uid的行,要保留的行可以是今天status = 1的任何行,(即可以有行其中 uid 和行状态相同,但其他字段不同,在这种情况下,我们可以保留这些行中的任何一行。)我想在 graphlab sframes 中执行这些操作,但无法弄清楚如何进行。

您可以使用 SFrame.unique(),它可以为您提供独特的行

sf = sf.unique()

其他方法也可以使用 groupby() 方法或 join() 方法,您可以在其中指定列名和进一步的工作。您可以通过各种方式阅读他们在 turi.com click 上的文档。

另一种方法(我个人更喜欢)是将 SFrame 转换为 pandas 的 Dataframe,然后进行数据操作,然后再次将 pandas Dataframe 转换为 SFrame。这取决于您的选择,希望对您有所帮助。