我有一个包含数千行的数据框,其中包含多个人的多个条目:
Name ID Date
0 Person A 9999249491 2015-12-28
1 Person A 9999249491 2015-12-29
2 Person A 9999293341 2015-12-30
3 Person B 9999293341 2015-12-30
4 Person B 9999293341 2015-12-31
我想找到使用Date
和groupby()
的每个人的最低idxmin()
的索引,但我收到了ValueError
条消息当我执行以下内容时:
df.groupby(['Name','ID'])['Date'].idxmin()
返回以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-153-ef18ad96a6d8> in <module>()
3 t = df[['Name','ipg_id','Date']]
4
----> 5 t.groupby(['Name','ipg_id'])['Date'].idxmin()
C:\Users\nickb\Anaconda2\lib\site-packages\pandas\core\groupby.pyc in idxmin(self, axis, out, skipna)
C:\Users\nickb\Anaconda2\lib\site-packages\pandas\core\groupby.pyc in wrapper(*args, **kwargs)
548 *args, **kwargs)
549 except (AttributeError):
--> 550 raise ValueError
551
552 return wrapper
ValueError:
但是,我可以毫无问题地执行min()
方法:
df.groupby(['Name','ID'])['Date'].min()
返回:
Name ID
Person A 9999249491 2015-12-28
Person B 9999293341 2015-12-30
我似乎无法弄明白为什么我收到ValueError
消息。让idxmin()
工作的任何线索都会很棒。谢谢。
答案 0 :(得分:2)
我认为您需要将列Date
设置为日期之前:
df.Date = pd.to_datetime(df.Date)