2017-10-12 36 views
0

我有一個包含多個不同特徵列的熊貓數據框。我有一個特定的列可以採取各種整數值。我想以這樣一種方式操作數據幀,即每個整數值都有相同的數字。在熊貓數據框中重複元素,使每個獨特元素的數量相等

之前;

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

之後;

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

我希望這適用於數據框中的每個鍵。

+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

相關問題