第二小值,我有一个例子数据框类似如下:Python的大熊猫:选择GROUPBY
import pandas as pd
import numpy as np
df = pd.DataFrame({'ID':[1,2,2,2,3,3,], 'date':array(['2000-01-01','2002-01-01','2010-01-01','2003-01-01','2004-01-01','2008-01-01'],dtype='datetime64[D]')})
我想获得第二个最早的一天每个ID小组。所以我写了下面的功能可按:
def f(x):
if len(x)==1:
return x[0]
else:
x.sort()
return x[1]
然后我写道:
df.groupby('ID').date.apply(lambda x:f(x))
结果是错误的。
你能找到一种方法使这项工作?
使用nsmallest,加入0.14.1:https://github.com/pydata/pandas/pull/7356 – Jeff