尝试在中等大小的数据帧上执行简单的forward
时遇到无用的ValueError
。我已将其跟踪到发生在特定行上,但是该行没有什么异常之处。 (它确实对应于一个值,其中diff
键只有一个实例,但它不是数据中唯一的实例)。
group_by
对于此摘录,在最后引用的行上,我得到:
tp1 = to_predict[['user_id', 'time_period', 'view_count']].head(74105).copy()
tp2 = to_predict[['user_id', 'time_period', 'view_count']].head(74106).copy()
tp1['date_diff'] = tp1.groupby('user_id')['view_count'].diff(1)
tp2['date_diff'] = tp2.groupby('user_id')['view_count'].diff(1)
(这是总错误消息;有关ValueError的更多信息)。
如果我仅抽取有问题的行周围的几行并重复groupby,则它将运行而不会出现错误:
ValueErrorTraceback (most recent call last)
<ipython-input-109-5d39d01dba69> in <module>()
3
4 tp1['date_diff'] = tp1.groupby('user_id')['dates_viewed'].diff(1)
----> 5 tp2['date_diff'] = tp2.groupby('user_id')['dates_viewed'].diff(1)
C:\Users\aleistra-admin\AppData\Local\Continuum\anaconda2\lib\site-packages\pandas\core\groupby\groupby.pyc in diff(self, periods)
C:\Users\aleistra-admin\AppData\Local\Continuum\anaconda2\lib\site-packages\pandas\core\groupby\groupby.pyc in wrapper(*args, **kwargs)
849 *args, **kwargs)
850 except (AttributeError):
--> 851 raise ValueError
852
853 return wrapper
ValueError:
由于该问题仅在较大的数据帧的上下文中发生,因此我无法提供有意义的小型数据集来重现它。如前所述,几行摘录不会出现此问题。这里的实际错误是什么,我该如何解决?
编辑:“ view_count”和“ time_period”都是整数,范围从0到30。
根据评论的要求:
tp3 = to_predict[['user_id', 'time_period', 'view_count']][74100:74110].copy()
tp3['date_diff'] =tp3.groupby('user_id')['view_count'].diff(1)
这里有问题的行是具有user_id 6df3af5d31的行。为了提高可读性,我在这里将user_id截断了,实际上它们更长了。同样,仅在完整的〜80K行数据帧的情况下,该行不会在此子样本中引起问题 。