Python 3.x 如何在满足一定条件的列表中找到项目的索引位置?

Python 3.x 如何在满足一定条件的列表中找到项目的索引位置?,python-3.x,pandas,Python 3.x,Pandas,如何在满足特定条件的列表中找到项目的索引位置? 假设,我有一个如下列表: myList = [0, 100, 335, 240, 300, 450, 80, 500, 200] 条件是找出myList中所有元素的位置,这些元素位于0和300之间(包括0和300)。 我希望输出为: output = [0, 1, 3, 4, 6, 8] 我怎样才能在熊猫身上做到这一点 另外,如何在满足条件的元素子集中找出最大元素的索引?与上述情况类似,在满足给定条件的元素中,300为最大值,其索引为4。因此,

如何在满足特定条件的列表中找到项目的索引位置? 假设,我有一个如下列表:

myList = [0, 100, 335, 240, 300, 450, 80, 500, 200]
条件是找出myList中所有元素的位置,这些元素位于0和300之间(包括0和300)。 我希望输出为:

output = [0, 1, 3, 4, 6, 8]
我怎样才能在熊猫身上做到这一点

另外,如何在满足条件的元素子集中找出最大元素的索引?与上述情况类似,在满足给定条件的元素中,300为最大值,其索引为4。因此,需要检索其索引

我已经尝试了很多方法,但是没有得到想要的结果。请帮忙,我是编程界的新手。

你可以试试这个

>>将熊猫作为pd导入
>>>df=pd.DataFrame({'a':[010033524030045080500200]})
>>>index=list(df[(df.a>=0)和(df.a>>df.loc[index,].idxmax()
a 4
数据类型:int64
或者使用列表

>>l=[010033524030045080500200]
>>>索引=[(i,v)表示枚举中的i,v(l)如果v>=0,则v>>[t[0]表示索引中的t]
[0, 1, 3, 4, 6, 8]
>>>已排序(索引,键=λx:x[1])[-1][0]
4.
正如Grzegorz Skibinski所说,如果我们使用numpy来摆脱许多计算

>>将numpy作为np导入
>>>l=[010033524030045080500200]
>>>index=np.数组([[i,v]表示枚举(l)中的i,v,如果v>=0和v>>index[:,0]
数组([0,1,3,4,6,8])
>>>索引[index.argmax(0)[1]][0]
4.
您可以试试这个

>>将熊猫作为pd导入
>>>df=pd.DataFrame({'a':[010033524030045080500200]})
>>>index=list(df[(df.a>=0)和(df.a>>df.loc[index,].idxmax()
a 4
数据类型:int64
或者使用列表

>>l=[010033524030045080500200]
>>>索引=[(i,v)表示枚举中的i,v(l)如果v>=0,则v>>[t[0]表示索引中的t]
[0, 1, 3, 4, 6, 8]
>>>已排序(索引,键=λx:x[1])[-1][0]
4.
正如Grzegorz Skibinski所说,如果我们使用numpy来摆脱许多计算

>>将numpy作为np导入
>>>l=[010033524030045080500200]
>>>index=np.数组([[i,v]表示枚举(l)中的i,v,如果v>=0和v>>index[:,0]
数组([0,1,3,4,6,8])
>>>索引[index.argmax(0)[1]][0]
4.

您可以使用
numpy
实现此目的:

将numpy导入为np
myList=np.array([010033524030045080500200])

res=np。其中((myList>=0)和(myList您可以为此使用
numpy

将numpy导入为np
myList=np.array([010033524030045080500200])

res=np。其中((myList>=0)和(myList这是熊猫中
之间的

myList = [0, 100, 335, 240, 300, 450, 80, 500, 200]
s= pd.Series(myList)
s.index[s.between(0,300)]
输出:

Int64Index([0, 1, 3, 4, 6, 8], dtype='int64')

这是熊猫中的
之间的

myList = [0, 100, 335, 240, 300, 450, 80, 500, 200]
s= pd.Series(myList)
s.index[s.between(0,300)]
输出:

Int64Index([0, 1, 3, 4, 6, 8], dtype='int64')

pandas
中的
myList
如何?它是一列,还是应该是
列表而不是
pandas
?在
pandas
myList
如何?它是一列,还是应该是
列表而不是
pandas
?嗨..谢谢你的帮助。但是我需要检索格言的索引嗯元素,而不是最大元素本身。就像在我的列表中,0和300之间的最大元素是300,位于第4位。所以我需要4作为o/p,而不是300。你能帮我一下吗?我更新了我的答案。你可以查找你的问题。
E.Zeytinci
谢谢你的更新。它非常有效。我如何修改此代码以找到t子集中最小元素的索引?
E.Zeytinci
我得到了:)…刚刚添加了
reverse=True
Hi..谢谢你的帮助。但是我需要检索最大元素的索引,而不是最大元素本身。就像在我的列表中,0和300之间的最大元素是300,位于第4位。所以我需要4作为o/p,而不是300。你能帮我吗?我更新了我的答案。你可以查找你的问题在上。
E.Zeytinci
感谢您的更新。它工作得很好。我如何修改此代码以在子集中找到min元素的索引?
E.Zeytinci
我得到了它:)…刚刚添加了
reverse=True
Ok,将其严重重写为
numpy
将节省大量计算。重写示例:
index=np.array([[i,v]表示枚举(l)中的i,v)如果v>=0和v是的,你是绝对正确的!我在我的答案中添加了,谢谢。好的,认真地将它重写为
numpy
将节省大量计算。重写你的示例:
index=np.array([[I,v]表示枚举(l)中的I,v)如果v>=0和v是的,你是绝对正确的!我在我的答案中添加了,谢谢。