1

我有一个 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 的行,要保留的行可以是今天状态 = 1 的任何行,(即可以有 uid 和行状态的行相同,但其他字段不同,在这种情况下,我们可以保留这些行中的任何一行。)我想在 graphlab sframes 中执行这些操作,但无法弄清楚如何进行。

4

1 回答 1

1

您可以使用SFrame.unique()它可以为您提供唯一的行

sf = sf.unique()

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

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

于 2017-09-20T05:48:42.350 回答