Заполните пропущенные значения даты и заполните второй столбец на основе предыдущей строки - PullRequest
2 голосов
/ 28 февраля 2020

У меня есть CSV с 2 столбцами, один с датой, заполненной в нем, второй столбец со значением ставки. Файл содержит несколько пропущенных строк на основе столбца даты.

Я хотел бы получить код python, который может заполнить пропущенные даты между первой строкой и последней строкой (между 01/01/2019 и 14/01/2019), вторая задача состоит в том, чтобы затем заполнить пропущенную норму ставкой за предыдущие дни.

Например, пропущены 04 и 05 января, эти строки необходимо создать, а предыдущую количество дней в году - 3 января - 1.12, поэтому необходимо ввести значение для 04 и 05 января.

Код должен быть динамическим c, поэтому первая и последняя строки не всегда будут одинаковыми для каждого файла. Например, второй файл может иметь значения для первой строки и последней строки от 03/02/2019 и 25/02/2019. Один и тот же код должен быть в состоянии запускаться для каждого файла, если это возможно.

Входными данными будет CSV, а выходными данными также должен быть CSV-файл.

enter image description here

Ввод -

Date,Rate
01/01/2019,1.12
02/01/2019,1.13
03/01/2019,1.12
06/01/2019,1.11
07/01/2019,1.13
08/01/2019,1.14
09/01/2019,1.13
10/01/2019,1.11
12/01/2019,1.12
13/01/2019,1.13
14/01/2019,1.14

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.

1 Ответ

2 голосов
/ 28 февраля 2020

Сначала вам нужно убедиться, что ваша дата имеет тип datetime, и вы можете использовать resample:

# resample
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

new_df = df.set_index('Date').resample('D').ffill().reset_index()

Вывод:

         Date  Rate
0  2019-01-01  1.12
1  2019-01-02  1.13
2  2019-01-03  1.12
3  2019-01-04  1.12
4  2019-01-05  1.12
5  2019-01-06  1.11
6  2019-01-07  1.13
7  2019-01-08  1.14
8  2019-01-09  1.13
9  2019-01-10  1.11
10 2019-01-11  1.11
11 2019-01-12  1.12
12 2019-01-13  1.13
13 2019-01-14  1.14
...