from dateutil.rrule import rrule, MONTHLY
def fread_year_month(strt_dt, end_dt):
dates = [dt for dt in rrule(MONTHLY, dtstart=strt_dt, until=end_dt)]
return dates
df = pd.DataFrame({
'value' : [4,2,5,6,7,8,6,5,4,1,2,4],
'date': fread_year_month(dt.datetime(2015, 1, 1),dt.datetime(2015, 12, 1)),
'stock': ['amzn']*12
},columns=[
'value', 'date', 'stock'])
df2 = pd.DataFrame({
'value' : [1,1,1,1,1],
'date': fread_year_month(dt.datetime(2015, 1, 1),dt.datetime(2015, 5, 1)),
'stock': ['msft']*5
},columns=[
'value', 'date', 'stock'])
df = df.append(df2)
df.set_index(['stock', 'date'], inplace=True)
У меня есть вышеуказанная рамка данных панд. Как вы можете видеть, количество доступных данных для amzn не такое же, как msft. В этом примере даты являются последовательными, но это не обязательно (датами могут быть любые даты).pandas переиндексация с пропущенными датами
Если вселенная доступных дат является датой, для которой у меня есть данные для AMZN, то как я могу добавить эти точные даты для каждого другого запаса в моем кадре данных с помощью NaN или NA.
В примере дайте, я хочу вставить недостающие даты для msft в индекс и вставить NaN или NA для значения для этих индексов даты.