#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. потрясающе, братан, что первый работает. Я сохраню обновленную версию на всякий случай.