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。这取决于您的选择,希望对您有所帮助。
我有一个 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。这取决于您的选择,希望对您有所帮助。