在pandas数据帧中重复元素,使每个唯一元素的数量相等

时间:2017-10-12 15:46:21

标签: pandas numpy dataframe

我有一个包含多个不同功能列的pandas数据帧。我有一个特定的列,可以采取各种整数值。我想以这样一种方式操纵数据帧,即每个这些整数值都有相同数量。

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

后;

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

我希望将其应用于数据框中的每个键。

1 个答案:

答案 0 :(得分:0)

所以这是我编写解决方案的一种丑陋方式,但我觉得这与使用pandas数据帧的全部理由相悖。

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)