第二小值,我有一個例子數據框類似如下: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