我有一个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中执行这些操作,但我无法弄清楚如何继续。
答案 0 :(得分:1)
您可以使用可以为您提供唯一行的SFrame.unique()
sf = sf.unique()
其他方式也可以使用groupby()
方法或join()
方法,您可以在其中指定列名称和进一步的工作。您可以通过各种方式在turi.com
click上阅读他们的文档。
另一种方式(我个人更喜欢)是将SFrame转换为Pandas的Dataframe,并致力于获取数据操作并再次将pandas Dataframe转换为SFrame。这取决于你的选择,我希望这会有所帮助。