【发布时间】:2018-03-25 04:13:12
【问题描述】:
我有一个包含 3 列的数据框:x、y、时间。有几千行。
我想要做的是检索具有最短时间的行,但我希望最小值不应该是 0。
例如
x y time
240 1 28.5
240 2 19.3
240 240 0
240 19 9.7
到目前为止,我尝试过的方法如下:
df.loc[df['time'] > 0].min()
# this gives me a series and I want a row
# x 225.000000
# y 0.000000
# time 1.066606
df['time'].drop_duplicates().nsmallest(1)
# 225 0.0
我也尝试过使用 groupby 的方法
df.loc[df.groupby('id_x', sort=False)['time'].idxmin()]
我知道在对这个进行子集化时遇到问题,因为我通常有一个系列。
【问题讨论】:
-
感谢大家的帮助!那速度非常快。