pandas TypeError:使用nunique

时间:2018-05-30 16:47:00

标签: python-3.x pandas dataframe python-datetime

我尝试在nunique上使用datetime64,但收到了错误,

TypeError: invalid type comparison

代码,

np.where(df.groupby('group_id')['payment_date'].transform('nunique') == 1, 0, 10)

我试图检查datetime64值是否完全相同。 df看起来像,

group_id    date
   1        2017-10-01
   1        2017-10-02
   1        2017-10-03
   1        2017-10-03
   2        2017-11-01
   2        2017-10-15
   2        2017-11-05

我想知道如何修复错误。

1 个答案:

答案 0 :(得分:1)

我认为这是一个问题,因为nunique的结果输出被强制转换为日期时间以保留dtype。如果你问我,不应该发生。

解决方法是对字符串数据进行nunique比较:

df.date.astype(str).groupby(df.group_id).transform('nunique')

其余的就像往常一样。