groupby.diff中的加密ValueError

时间:2018-07-11 20:10:57

标签: python pandas pandas-groupby

尝试在中等大小的数据帧上执行简单的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行数据帧的情况下,该行不会在此子样本中引起问题

0 个答案:

没有答案