2017-10-12 37 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

相关问题