我有一个多索引的数据集,比如组(string)和日期(datetime64)。尝试使用
.xs(slice(startDate,endDate),level='Date',drop_level = False)
我想我会得到相同组的数据集,但是没有超出开始/结束范围的日期。你知道吗
相反,我将一些组按开始/结束范围进行切片,一些组缺少条目,而另一些组看起来根本没有切片。你知道吗
例如:
d={'group':['a','a','a','b','b','b','b','c','c','c','c','c','c','c','t','t','t','t','t','t','t','t','t','t','t','t','t','t'],
'date':[np.datetime64('2005-02-25'),np.datetime64('2005-02-25'),np.datetime64('2005-02-27'),
np.datetime64('2005-02-25'),np.datetime64('2005-02-26'),np.datetime64('2005-02-27'),np.datetime64('2005-02-26'),
np.datetime64('2005-01-25'),np.datetime64('2005-02-25'),np.datetime64('2005-03-27'),np.datetime64('2005-04-25'),np.datetime64('2005-05-26'),np.datetime64('2005-06-27'),np.datetime64('2005-07-26'),
np.datetime64('2005-01-25'),np.datetime64('2005-02-25'),np.datetime64('2005-03-27'),np.datetime64('2005-04-25'),np.datetime64('2005-05-26'),np.datetime64('2005-06-27'),np.datetime64('2005-07-26'),
np.datetime64('2005-02-25'),np.datetime64('2005-02-25'),np.datetime64('2005-02-27'),np.datetime64('2005-02-25'),np.datetime64('2005-02-26'),np.datetime64('2005-02-27'),np.datetime64('2005-02-26')],
'data':[1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7]}
df = pandas.DataFrame(d)
aggregate = df.groupby(('group','date')).sum()
aggregate
将产生
data
group date
a 2005-02-25 3
2005-02-27 3
b 2005-02-25 4
2005-02-26 12
2005-02-27 6
c 2005-01-25 1
2005-02-25 2
2005-03-27 3
2005-04-25 4
2005-05-26 5
2005-06-27 6
2005-07-26 7
t 2005-01-25 1
2005-02-25 9
2005-02-26 12
2005-02-27 9
2005-03-27 3
2005-04-25 4
2005-05-26 5
2005-06-27 6
2005-07-26 7
以及
startDate = np.datetime64('2005-02-25')
endDate = np.datetime64('2005-02-26')
aggregate.xs(slice(startDate,endDate),level='date',drop_level = False)
可能产生
data
group date
a 2005-02-25 3
b 2005-02-25 4
2005-02-26 12
c 2005-01-25 1
2005-02-25 2
t 2005-01-25 1
2005-02-25 9
2005-02-26 12
2005-02-27 9
2005-03-27 3
2005-04-25 4
2005-05-26 5
2005-06-27 6
2005-07-26 7
(在任何人运行该代码段之前,它实际上完全按照预期工作,示例输出是说明性的)
我觉得我一定犯了一个显而易见的错误。 有没有人能解释一下为什么,告诉我在哪里用错了多索引切片?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐