Для каждой 1000 строк вставляйте новые панды python с возрастающей датой

#python #pandas

Вопрос:

У меня есть такой df:

        a     b     c   
0      1     2     3
1      4     5     6
...
1000   7     8     9 
 

Я пытаюсь создать столбец d с возрастающей датой для каждой 1000 строк, например:

        a     b     c    d
0      1     2     3    4/1/21
1      4     5     6    4/1/21
2      4     5     6    4/1/21
...
1000   7     8     9    4/2/21
1001   7     8     9    4/2/21
...
2000   7     8     9    4/3/21
2001   7     8     9    4/3/21
 

Я думаю, что мне следует передать список дат, но я действительно не знаю лучшего способа сделать это. Я делаю это вручную в excel.

Комментарии:

1. Дата начала-4/1/21?

2. @HenryEcker Да

Ответ №1:

Давайте попробуем что-нибудь вроде:

 import pandas as pd
import numpy as np

# Random Data
df = pd.DataFrame(np.random.randint(1, 10, size=(2002, 3)),
                  columns=['a', 'b', 'c'])

start = pd.to_datetime("4/1/2021")
df['d'] = start   (df.index // 1000 * pd.Timedelta(days=1))
print(df)
 

Выход:

       a  b  c          d
0     7  9  6 2021-04-01
1     3  5  6 2021-04-01
2     7  5  8 2021-04-01
3     8  2  3 2021-04-01
4     6  6  8 2021-04-01
...  .. .. ..        ...
1997  4  3  7 2021-04-02
1998  1  5  2 2021-04-02
1999  1  7  7 2021-04-02
2000  4  8  8 2021-04-03
2001  9  9  6 2021-04-03

[2002 rows x 4 columns]
 

Комментарии:

1. потрясающе, братан, что первый работает. Я сохраню обновленную версию на всякий случай.