2017-09-18 4 views
3

"uid"カラムに似たid値を持つ行がほとんどないgraphlab sframeデータフレームがあります。ここでgraphlab - sframe:列の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つですべての行を保持する、保持される行は、今日の状態= 1を持っている任意の行することができ、(つまり、そこにすることができます他のフィールドが異なる場合は、これらの行のいずれか1つを保持することができます)。これらの操作をグラフ・フレームsframesで実行したいが、どのように処理するか把握できない。

答えて

1

あなたはあなたのユニークな行を与えることができSFrame.unique()

sf = sf.unique() 

を使用することができる他の方法はまた、あなたが列名と更なる作業のいずれかを指定できgroupby()方法やjoin()方法を使用してすることができます。さまざまな方法でturi.comclickのドキュメントを読むことができます。

SFrameをpandasのDataframeに変換し、データ操作を取得して再びpandas DataframeをSFrameに変換する方法もあります。それはあなたの選択に依存し、私はこれが役立つことを願っています。

+0

ご回答ありがとうございます。問題は.uniqueは行のすべての列をチェックする重複を削除するだけです。私はちょうど2つの列のためにそれをやりたいです。すなわち、uidと行のステータスが同じ行があるかもしれませんが、他のフィールドは異なっています。その場合、これらの行のいずれかを保持することができます。また、groupbyはsframe全体を格納せず、key_columnsで指定したカラムまで切り捨てます。 – Tarun

+1

@Tarun私は個人的に選択された列で 'groupby()'に行き、その後.joinを使って選択した列のsframeに参加します。はい、私は全くあなたに同意します。groupbyはすべてのsframeを保持しませんが、それはgroupbyを使用して選択した列で作業することです。他の方法では、あなたはパンダを使い、複数の列で簡単に作業することができます。 –

+0

@タルンこれはあなたのために働いた場合、答えをチェックしてこの答えを確認してください。ありがとう –

関連する問題