Python 重新创建数据帧(丢失日期重新插入);如何制作索引?

Python 重新创建数据帧(丢失日期重新插入);如何制作索引?,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,从数据帧df1,我试图创建一个新的数据帧df2,其中还包含df1中缺失日期的值(例如,周六、周日,将获得周五的值)。除了我的新的df2似乎没有相同类型的索引(如df1:DATE)之外,以下内容似乎有效。如何确保df2也按日期编制索引 import pandas as pd import pandas_datareader as web import datetime as dt df1 = web.get_data_fred(['EUR1MTD156N'], start = dt.date(20

从数据帧
df1
,我试图创建一个新的数据帧
df2
,其中还包含
df1
中缺失日期的值(例如,周六、周日,将获得周五的值)。除了我的新的
df2
似乎没有相同类型的索引(如
df1
DATE
)之外,以下内容似乎有效。如何确保
df2
也按日期编制索引

import pandas as pd
import pandas_datareader as web
import datetime as dt
df1 = web.get_data_fred(['EUR1MTD156N'], start = dt.date(2000, 1, 4))
df1
def daterange(start_date, end_date):
    for n in range(int((end_date - start_date).days)):
        yield start_date + dt.timedelta(n)
start_date = df1.first_valid_index()
end_date = df1.last_valid_index()
dlist2 = []
for single_date in daterange(start_date, end_date + dt.timedelta(1)):
    try:
        last_value = df1['EUR1MTD156N'][single_date]
     except:
        pass
     dlist2.append(last_value)
df2 = pd.DataFrame(dlist2, columns = ['EUR1MTD156N'])
df2

顺便说一句:如果有更简单/有效的方法,那么我洗耳恭听……

我想你可以用pd.date\u范围创建一个新索引,然后重新索引并向前填充

df1 = df1.dropna().sort_index()
start_date = df1.index.min()
end_date = df1.index.max()

idx = pd.date_range(start=start_date, end=end_date, freq='D')
df2 = df1.reindex(idx)
df2['EUR1MTD156N'] = df2['EUR1MTD156N'].ffill()