Какой самый быстрый способ добавить несколько строк с фиктивными записями в фрейм данных? - PullRequest
0 голосов
/ 20 февраля 2020

Если у меня есть df, как это:

                Date       Value1  Value2  Value3  Value4
2008-01-01   2008-01-01       5       5      5       5
2008-01-01   2008-01-03      -1       6     -1      11
2008-01-01   2008-02-25       0       7      0       9
2008-01-01   2008-02-26      -1       8      0      14
2008-01-01   2008-02-27       0       9      3       9
2008-01-01   2008-03-02       5      10      0       9
2008-01-01   2008-03-16      -1      11     -1      12
2008-01-01   2008-03-17      -1      12     -1      12
2008-01-01   2009-04-04      13      13     -1      12
2008-01-01   2009-04-07       0      14     -1      12

Если я хочу добавить несколько строк только с фиктивными датами и значением1, это то, что я сделал.

for i in range(2008,2009):
    for j in range(1,4):
        datetime_obj = datetime.strptime('{}-{}-01'.format(i,j), '%Y-%m-%d')
        if datetime_obj > datetime.now():
            break

        df = df.append({'Date':datetime_obj,'Value1':0}, ignore_index=True)

и это станет следующим:

      Date       Value1  Value2  Value3  Value4
0   2008-01-01       5       5      5       5
1   2008-01-03      -1       6     -1      11
2   2008-02-25       0       7      0       9
3   2008-02-26      -1       8      0      14
4   2008-02-27       0       9      3       9
5   2008-03-02       5      10      0       9
6   2008-03-16      -1      11     -1      12
7   2008-03-17      -1      12     -1      12
8   2009-04-04      13      13     -1      12
9   2009-04-07       0      14     -1      12
10  2008-01-01       0      na     na      na
11  2008-02-01       0      na     na      na
12  2008-03-01       0      na     na      na

Я обнаружил, что этот метод довольно медленный (плюс в столбце индекса станут цифры), есть ли более быстрый способ сделать это? Благодаря.

...