Tôi có tên date_dict từ điển được khóa theo ngày giờ có giá trị tương ứng với số nguyên của các quan sát. Tôi chuyển đổi điều này thành một chuỗi/dataframe thưa thớt với các quan sát được kiểm duyệt mà tôi muốn tham gia hoặc chuyển đổi thành chuỗi/dataframe có ngày liên tục. Khó hiểu danh sách là hack của tôi để có được xung quanh thực tế là gấu trúc dường như sẽ không tự động bí mật các đối tượng ngày datetime một chỉ số DateTime thích hợp.Điền khung dữ liệu gấu liên tục từ khung dữ liệu thưa thớt
df1 = pd.DataFrame(data=date_dict.values(),
index=[datetime.datetime.combine(i, datetime.time())
for i in date_dict.keys()],
columns=['Name'])
df1 = df1.sort(axis=0)
Ví dụ này có 1258 quan sát và chỉ số DateTime chạy từ 2003-06-24 đến 2012-11-07.
df1.head()
Name
Date
2003-06-24 2
2003-08-13 1
2003-08-19 2
2003-08-22 1
2003-08-24 5
Tôi có thể tạo một khung dữ liệu trống với chỉ mục Ngày giờ liên tục, nhưng điều này giới thiệu một cột không cần thiết và có vẻ khó khăn. Tôi cảm thấy như thể tôi đang thiếu một giải pháp thanh lịch hơn liên quan đến việc tham gia.
df2 = pd.DataFrame(data=None,columns=['Empty'],
index=pd.DateRange(min(date_dict.keys()),
max(date_dict.keys())))
df3 = df1.join(df2,how='right')
df3.head()
Name Empty
2003-06-24 2 NaN
2003-06-25 NaN NaN
2003-06-26 NaN NaN
2003-06-27 NaN NaN
2003-06-30 NaN NaN
Có một cách đơn giản hoặc thêm thanh lịch để điền vào một dataframe liên tục từ một dataframe thưa thớt để có được (1) một chỉ số liên tục, (2) Nans là 0s, và (3) không có cột trống bên trái trong khung dữ liệu?
Name
2003-06-24 2
2003-06-25 0
2003-06-26 0
2003-06-27 0
2003-06-30 0
Cảm ơn! Tôi đã sử dụng ts.reindex (pd.date_range (min (date_index), max (date_index)), fill_value = 0) –