【问题标题】:Finding the first row in a colomn where a criteria is met (value is higher than x) in Python在Python中查找满足条件(值高于x)的列中的第一行
【发布时间】:2014-03-22 12:41:49
【问题描述】:

在 Python 中,(+Numpy 还是 Pandas?)

我正在寻找一种方法来找到值高于 X 的第一行(比如说 9)。

【问题讨论】:

  • 你能提供输入的确切形式吗?到目前为止,您尝试过的示例也是公平的。
  • @BenjaminToueg,是的,我意识到告诉我我尝试了什么是公平的,老实说,我对编程很陌生,我在网上搜索了整个晚上,发现了很多过滤选项,但我没有发现如何找到第一行。输入是这样的 {"values":[[3,1],[2,10],[5,5]]}
  • @Frtschaal 您是如何从第一组数据中获得第二组数据的?我的意思是,第一组没有50,9, 10, 16*这一行在哪里?
  • 源只有 2 列。应该通过添加来创建第三列,但这似乎是可行的。
  • @behzad.nouri,哎呀,我稍微更改了数字以说明问题,但搞砸了,现在修复它。谢谢。

标签: python arrays numpy pandas


【解决方案1】:

不确定[2,10,5] 行的来源。但总体思路是......

data = {'values':[[1,10,1],[3,1,3],[4,3,5],[6,6,7],[7,10,8],[7,10,16],[14,5,22],[18,1,30]]}
x = 9
for i,row in enumerate(data['values']):
    if row[2]>x:
        rows = data['values'][max(0,i-4):i]
        break

assert rows == [[3,1,3],[4,3,5],[6,6,7],[7,10,8]]

# etc...
y = 8
for i,row in enumerate(rows):
    if row[1]>y:
        ans = rows[i][0]
        break

# etc...
assert ans == 7

【讨论】:

  • 完美运行。但是您是否碰巧知道加快速度的方法?麻木?
猜你喜欢
  • 1970-01-01
  • 2013-05-28
  • 2018-05-16
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2021-02-01
相关资源
最近更新 更多