gpt4 book ai didi

python - 如何获得一维数据框中行范围的局部最大值?

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:36 24 4
gpt4 key购买 nike

我有一个数据框 df

df = pd.DataFrame(
columns=[1., 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3],
data=[[0, 2, 42, 50, 46, 6, 0, 0, 1, 41, 49, 45, 5, 0]]
)

像这样

    1.  1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3
0 0 2 42 50 46 6 0 0 1 41 49 45 5 0

我想得到

    1.0   1.1   1.2   1.3  1.4   1.5   1.6   1.7   1.8   1.9   2.0   2.1   2.2   2.3
0 False False False True False False False False False False True False False False

(注意:我使用的是数据框,因为我还管理每一列的其他数据。)。我怎样才能得到这样的数据框,例如使用 groupbyGroupBy.apply

最佳答案

这就是所谓的局部最大值,我们可以做 argrelextrema

from scipy.signal import argrelextrema
idx=argrelextrema(df.loc[0].values,np.greater)
df.columns[idx[0]]
Out[227]: Float64Index([1.3, 2.0], dtype='float64')

匹配输出

df[:]=df.columns.isin(df.columns[idx[0]])
df
Out[234]:
1.0 1.1 1.2 1.3 1.4 ... 1.9 2.0 2.1 2.2 2.3
0 False False False True False ... False True False False False
[1 rows x 14 columns]

关于python - 如何获得一维数据框中行范围的局部最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com