【问题标题】:Returning the location of variables in a range of a pandas dataframe column where a condition is met返回满足条件的熊猫数据框列范围内变量的位置
【发布时间】:2022-06-10 17:55:51
【问题描述】:

我目前在数据框中有一列 df[Stress]。我想返回列中存储的值小于变量load_drop 的行的位置,但仅在列的某个范围内,由firstlast 表示。我想我可以使用np.where 来查找位置,但到目前为止,我在运行代码时返回了一个空数组。这是我目前所拥有的:

df = {'Stress': [1,2,3,6,7,8,10,12,14,20,19,17,15,13,12,10,8,7,6,4,1,0]

first = 10
last = 18
drop = 11

life_array = np.where(df['Stress'].iloc[first:last] < drop)

print (life_array)

[]

理想情况下,我想要的输出是这样的:

print(life_array)

0  15
1  16
2  17
3  18

这是满足条件的行的位置。我可以以这种方式使用np.whereiloc 吗?任何帮助将不胜感激!

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    IIUC 需要 2 个步骤 - 首先按位置过滤,然后按掩码:

    s =  df['Stress'].iloc[first:last]
    life_array = s[s < drop]
    
    print (life_array)
    15    10
    16     8
    17     7
    Name: Stress, dtype: int64
    

    【讨论】:

    • 感谢您的回答,它有效,但我意识到这并不是我真正想要的 - 我不希望包含该值,只是包含该项目的索引位置。我已经编辑了输出以更好地显示这一点!
    • @MurrayRoss - 然后使用life_array = s.index[s &lt; drop]
    猜你喜欢
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2019-09-06
    • 2019-08-02
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多