我有一个multindex数据帧,0级是DateTimeIndex,而1级是充满datetime.times。
我正在尝试在数据帧中插入一些新行(某些1级索引存在一些间隙(缺少原始数据源的时间)。
似乎我可以插入一行,但是当我将IndexSlicer传递给levels [1]位置列表时,它只是默默地失败了。不会引发异常,但是也不会插入任何东西。
import random
dti = pd.DatetimeIndex(freq="4H",periods=10, start="2018-12-1", name='stamp')
df = pd.DataFrame(random.sample(range(1,20), 10), index=dti, columns=["data"])
df.set_index([ df.index.date, df.index.time], inplace=True)
print(df)
idx = pd.IndexSlice
#works
df.loc[idx['2018-12-1', datetime(1999,1,1,3,0).time()],:]= "a single time"
#silently fails to insert
list_of_times = [datetime(1999,1,1,6,25).time(), datetime(1999,1,1,6,30).time() ]
df.loc[idx['2018-12-1', list_of_times],:]= "list of two times"