【发布时间】:2019-03-16 01:18:08
【问题描述】:
我有一个如下的数据框:
import numpy as np
import pandas as pd
import datetime as dt
dates = ['2000-01-01', '2000-01-03', '2000-01-03', '2000-01-04']
dates_list =[ dt.datetime.strptime(date, '%Y-%m-%d').date() for date in dates]
df = pd.DataFrame(np.random.rand(4, 2),
index=[['a', 'a', 'b', 'b'], dates_list],
columns=['data1', 'data2'])
-
df
data1 data2
a 2000-01-01 0.928427 0.029868
2000-01-03 0.243949 0.140281
b 2000-01-03 0.760319 0.897673
2000-01-04 0.288415 0.919107
我想为每个索引值估算缺失的最大和最小日期行,并为数据列设置一些值(即 0)。这样我的数据框看起来像:
data1 data2
a 2000-01-01 0.507132 0.649724
2000-01-02 0.0 0.0
2000-01-03 0.500277 0.859769
2000-01-04 0.0 0.0
b 2000-01-01 0.0 0.0
2000-01-02 0.0 0.0
2000-01-03 0.136397 0.166815
2000-01-04 0.102095 0.918545
我尝试过使用以下描述的方法: pandas fill missing dates in time series 和 Add missing dates to pandas dataframe 为:
df.loc[dates_list]
->
TypeError: unhashable type: 'DatetimeIndex'
但我无法让它为多级索引 df 工作。
【问题讨论】: