pandas:从DataFrame中找到第一个发布的产品

时间:2015-11-28 14:18:04

标签: python pandas dataframe

我有以下DataFrame:

product_id        shipping_date                  price        quantity
  AX-11           2014-11-02T01:00:04+00:00       200            1
  BA-45           2012-05-23T01:00:02+00:00       4000           5
  XF-55           2011-01-12T01:00:07+00:00       400            10
  ..................................................................

我正在尝试获取最先发货的产品,答案应为XF-55,因为它是2011-01-12T01:00:07+00:00中提供的。

我尝试了以下代码,但这似乎不起作用:

df2 = df.groupby('product_id')['shipping_date'].transform("min")

这只是给了我一个带product_id的新DataFrame,它们根本没有排序。我如何获得第一个发货产品的product_id

2 个答案:

答案 0 :(得分:1)

使用idxmin()获取最早发货日期的行索引。然后,您可以使用loc从产品ID列中获取该行的值:

>>> df.loc[df['shipping_date'].idxmin(), 'product_id']
'XF-55'

答案 1 :(得分:-1)

我会使用NumPy的argsort

sortidx = np.argsort(df['shipping_date'])

这为您提供了一组对数据进行排序的索引。因此返回数组中的第一个索引是最低shipping_date的索引。然后:

df['product_id'][sortidx[0]]

应该给你想要的结果。