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

时间:2017-09-18 08:41:44

标签: python dataframe graphlab sframe

我有一个graphlab sframe数据帧,其中很少行在" uid"柱。

| 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中执行这些操作,但我无法弄清楚如何继续。

1 个答案:

答案 0 :(得分:1)

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

sf = sf.unique()

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

另一种方式(我个人更喜欢)是将SFrame转换为Pandas的Dataframe,并致力于获取数据操作并再次将pandas Dataframe转换为SFrame。这取决于你的选择,我希望这会有所帮助。