Если у меня есть 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
Я обнаружил, что этот метод довольно медленный (плюс в столбце индекса станут цифры), есть ли более быстрый способ сделать это? Благодаря.