Вставить n строк на основе значения условия (n) - PullRequest
1 голос
/ 18 июня 2020

Мне нужна помощь с этой проблемой в Python.

Если у меня есть такой фрейм данных, как этот:

  ID           Date       Constant
0  1           some_date   1
1  1           some_date   1
2  2           some_date   4
3  2           some_date   4
4  2           some_date   4
5  3           some_date   2
6  3           some_date   2

Я хочу вставить количество строк для каждой группы на основе на условии «Постоянный». Итак, для идентификатора группы номер 1 я хотел бы иметь одну дополнительную строку, для номера 2 я хотел бы иметь 4 новых строки и для номера 3 две дополнительные строки.

Кто-нибудь может мне помочь, пожалуйста?

Заранее спасибо

1 Ответ

0 голосов
/ 18 июня 2020

IIU C, вы можете использовать список comp для объединения фрейма данных + нужное вам количество повторов.

Это не очень красиво, но я не уверен, как еще применить это к нескольким группы в вашем фрейме данных.

df1 = pd.concat([
    pd.concat([data, 
               pd.concat([data.iloc[:1]] * data["Constant"].min())])
    for group, data in df.groupby(["ID", "Constant"])
])

 ID       Date  Constant
0   1  some_date         1
1   1  some_date         1
0   1  some_date         1 #repeat
2   2  some_date         4
3   2  some_date         4
4   2  some_date         4
2   2  some_date         4
2   2  some_date         4
2   2  some_date         4
2   2  some_date         4 # 4 repeated rows.
5   3  some_date         2
6   3  some_date         2
5   3  some_date         2
5   3  some_date         2 # 2 repeated rows.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...