Проверьте, завершен ли список дат в Python, используя Pandas - PullRequest
0 голосов
/ 08 мая 2019

У меня есть текстовый файл с заголовком, содержащим даты начала и окончания временного ряда.Остальная часть файла содержит 3 столбца: начальный день, конечный день и значение - как показано ниже.

19580101 20181231
19580101 19580131     4.2
19580201 19580228    -1.6
19580301 19580331    -4.9
.
.
.
20181001 20181031    -8.2
20181101 20181130    -3.8
20181201 20181231     3.1

Я хочу отображать значения на графике с течением времени, но сначала хочу проверить, что датызавершены.

Вот часть моего кода:

import numpy as np
import pandas as pd

df = pd.read_fwf('file.txt',header=None)
head = df.loc[0] #extract header
df = df.drop(0) #delete first line

date_seq = pd.to_datetime(df.loc[:,0]) #convert column 0 to datetime

start_date = str(int(head[0])) #'19850101'
end_date = str(int(head[1])) #'20181231'

#synthesize date range:
strt = pd.to_datetime(start_date,format='%Y%m%d')
ends = pd.to_datetime(end_date,format='%Y%m%d')
date_rng = pd.date_range(start=strt, end=ends, freq='MS')

#compare extracted and synthesized date sequences:
diff = date_seq - date_rng
print diff.sum()

Вывод: 0 дней 00: 00: 00

Это кажется несколько неэффективным.Есть ли более элегантный способ?

...