2017-10-12 10 views
0

複数の異なる機能列を持つpandasデータフレームがあります。私はさまざまな整数値を取ることができる1つの特定の列を持っています。私は、これらの整数値のそれぞれが等しい数のようにデータフレームを操作したいと思います。pandasデータフレームの要素を繰り返して、各ユニーク要素の番号を同じにします

前;

df['key'] = [1,1,1,3,4,5,5] 

df['key'] = [1,1,1,3,3,3,4,4,4,5,5,5] 

これをデータフレーム内のすべてのキーに適用したいと考えています。

+2

しかし、キーごとに要素の数が変化する可能性があります。 2つのキーに最小のケースを追加できますか? – Divakar

+1

既存の行をどのように複製したいですか?たとえば、2つの「1」キーがあり、3つの「1」キーで終わる必要があります。どの「1」行が重複していますか? –

答えて

0

ここで私は解決策をコード化した醜い方法ですが、パンダのデータフレームを使用する全理由に反するような気がします。

for idx, i in enumerate(data['key'].value_counts()): 
    if i == max(data['key'].value_counts()): 
     pass 
    else: 
     scaling = (max(data['key'].value_counts()) // i) - 1 
     data2 = pd.concat([data[data['key'] == idx]]*scaling, ignore_index=True) 
     data = pd.concat([data, data2], ignore_index=True) 
+0

複数のキーを処理しますか?あなたは同じ事例を実行するサンプルを表示できますか? – Divakar

+0

私は、指定したキーに従ってデータフレームのバランスをとることを望みます。 – obtmind

関連する問題