【发布时间】:2018-01-19 12:50:54
【问题描述】:
我使用 group by 将数据框分组为不同的日期,然后使用 concat 根据日期将它们分成训练组和测试组
gp = dfs_0.groupby(pd.TimeGrouper('B'))
train = pd.concat([ gp.get_group(group) for i,group in enumerate( gp.groups) if i < len(gp)-1 ])
test = pd.concat([ gp.get_group(group) for i,group in enumerate( gp.groups) if i == len(gp)-1 ])
但是,如果工作日是银行保留,我没有数据,因此返回错误的空组:
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件“”,第 1 行,在文件中 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\groupby.py", 第 640 行,在 get_group 中 raise KeyError(name) KeyError: Timestamp('2014-04-18 00:00:00', freq='B')
有没有办法在连接前过滤掉这些空组
【问题讨论】:
-
你能添加一些数据样本吗?
-
我尝试测试您的解决方案,
len(gp)-1始终返回标量 - 没有 1 的所有组的大小。可以吗? -
是的,这绝对没问题。我这样做有基于技术模型的原因
-
jezrael 我会通过电子邮件向您发送一些数据
-
超级,最好的一些返回问题的数据