У меня есть кадр данных:
class1 class2 value value2
0 1 0 1 4
1 2 1 2 3
2 2 0 3 5
3 3 1 4 6
Я хочу повторить строки и вставить столбец приращения в том же количестве в соответствии с разницей между value
и value2
.Я хочу, чтобы датафрейм должен был выглядеть так:
class1 class2 value value2 value3
0 1 0 1 4 1
1 1 0 1 4 2
2 1 0 1 4 3
3 1 0 1 4 4
4 2 1 2 3 2
5 2 1 2 3 3
6 2 0 3 5 3
7 2 0 3 5 4
8 2 0 3 5 5
9 3 1 4 6 4
10 3 1 4 6 5
11 3 1 4 6 6
Я пробовал так:
def func(x):
copy = x.copy()
num = x.value2+1-x.value
return pd.concat([copy]*num.values[0])
df= df.groupby(['class1','class2']).apply(lambda x:func(x))
Но возникнет проблема oredr, из-за которой я не знаю, как добавить столбецvalue3
.И я хотел бы иметь элегантный способ сделать это.
Кто-нибудь может мне помочь?Заранее спасибо