python - 在python数据框中找到对两个条件进行分层的第一行
问题描述
我有一个看起来像这样的数据框:
我想编写一个代码来定位与下一个点的距离小于 250 的点。当找到该点时,搜索第一个距离超过250且速度大于5的点。例如在样本数据集中,首先找到第7行,然后找到距离超过250且速度为10.8的第10行并返回第 10 行的索引到目前为止我已经编写了这段代码:
for i in (number+1 for number in range(data_gpd.index[-1]-1)):
if (data_gpd['distance'][i+1]< 250):
我不确定在这种情况下我应该做什么。我曾考虑使用带有条件的“Next”语句,但我只能在一个条件下找到它用于列表理解。
我非常感谢您的帮助,因为我是 python 新手,不确定哪种语法会更好
解决方案
您可以使用 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
推荐阅读
- php - 如何在 FORM.blade 中禁用可选
- react-native - 无法从“screens/HomeScreen.js”解析“expo-av”
- visual-studio-code - 使用 VSCode,如何比较 Gitlens 中文件的两个非连续提交
- c - 调用 sigaction() 后“struct sigaction”可以重用吗?
- r - R 错误“不知道如何将‘x’转换为类‘POSIXlt’”
- python - Urllib3 自定义 SSL 密钥加密
- amazon-web-services - AWS 主题创建零星失败
- css - 使用 CSS 模块和 React 的“composes”关键字的特异性问题
- java - 如何在应用程序未聚焦时记录数据?
- python - WordCloud 停用词无法正常工作