2つの列があります:pandasデータフレームのCol1、Col2です。 Col1は1〜100の数値を持ち、Col2は0と1を持ちます。値が同じ場合、2番目の変数の並べ替えは一様です。
このデータフレームを並べ替えて、行がCol1でソートされるようにしたいとします。私の場合、私は数百万行を持っているので、間違いなくCol1の値は何度も繰り返されます。
を使用して、Col1に基づいて値を並べ替えることができます。たとえば、これが与えることができる:
Col1 Col2 ... OR ... Col1 Col2 ... OR ... Col1 Col2
100 0 100 1 100 0
100 0 100 1 100 0
100 1 100 1 100 0
100 0 100 1 100 0
100 1 100 0 100 1
100 1 100 0 100 1
100 1 100 0 100 1
100 0 100 0 100 1
99 1 99 1 99 1
... ... ...
を私は(クイックソート、マージ、など)を使用するソートアルゴリズムに基づいてCol2にのCol1 = 100には多くのディストリビューションが存在する場合があります。
ので、同じように私のCol1が同じ値であるセクションでは、私は、私のCol2にの分布が均一になりたい:
Col1 Col2
100 0
100 1
100 0
100 1
100 0
100 1
100 0
100 1
99 1
...
は、Python/numpyの/パンダ/任意の並べ替えの方法があります任意の[他のライブラリ]これを行うことができますか?これを行うことができるアルゴリズムの任意のアイデアですか?
Easはこれを試して、 'dnt [cntのnに対して' df ['rk'] = sum([list(range)(n)) 'はエラーを返します。確認できますか?私は結果を再現することができませんでした – AbdealiJK
私は入力ミスを避けるためにブロックにコードを入れました。エラーメッセージは何ですか? –
本質的には、リストのリストに対して 'sum'を行うことはできません。 'sum([[1,1]、[2,2]])'も動作しません。これは+: 'int'と 'list'に対してサポートされていないオペランドの型を返します。それはintのリストを必要とします – AbdealiJK