pandas 在python Dataframe 中查找分层两个条件的第一行

mfpqipee  于 2023-05-27  发布在  Python
关注(0)|答案(1)|浏览(138)

我有一个 Dataframe ,看起来像这样:
data frame
我想写一个代码,它定位与下一个点的距离小于250的点。当它找到该点时,将以大于5的速度搜索距离超过250的第一个点。例如,在样本数据集中,首先找到第7行,然后找到第10行,这是超过250的距离,速度为10.8,并返回第10行的索引我已经写了这段代码:

for i in (number+1 for number in range(data_gpd.index[-1]-1)):
if (data_gpd['distance'][i+1]< 250):

我不知道在这种情况下我应该做什么。我本来想使用带条件的“下一个”语句,但我只能找到它用于带一个条件的列表理解。
我真的很感谢你的帮助,因为我是新的python和不知道哪种语法会更好地工作

jjjwad0x

jjjwad0x1#

您可以使用pandas函数loc和相关条件返回pandas DataFrame。
第一个条件:

df['distance'] < 250

第二个条件:

df['speed'] > 5

合并条件:

(df['distance'] < 250) & (df['speed'] > 5)

使用loc和组合条件:

df.loc[(df['distance'] < 250) & (df['speed'] > 5)]

输入:

time  location  distance   speed
0   300      9071      9071  108.00
1   300     18376      9304   11.00
2   300     28006      9630  115.00
3   200     30506      2500   45.00
4   400     31606      1100    9.90
5   500     31706       100    0.72
6   150     31756        50    1.20
7    20     31766        10    1.80
8    50     31916       150   10.80

输出:

time  location  distance  speed
8    50     31916       150   10.8

相关问题