我有一個包含頻率、SNR 和時間標簽的資料幀。我的機器有一個問題,有時頻率會倒退而不是前進,我已經根據時間對資料框進行了排序,但現在我想遍歷行并洗掉頻率所在的行低于上一個。
這是我的資料框的一部分(整個資料框大約有 3700 行):
freq snr time_tag
128 395.400902 115.737681 652492975
118 395.385596 115.709449 652492976
134 395.415043 115.858103 652492978
137 395.427460 115.805077 652492979
133 395.413911 115.870729 652492980
你能幫忙嗎?謝謝你。
uj5u.com熱心網友回復:
使用shift當前行與之前的比較:
>>> df[~df['freq'].lt(df['freq'].shift())]
freq snr time_tag
128 395.400902 115.737681 652492975
134 395.415043 115.858103 652492978
137 395.427460 115.805077 652492979
或者,@mozway 建議:
>>> df[df['freq'].ge(df['freq'].shift(fill_value=0))]
freq snr time_tag
128 395.400902 115.737681 652492975
134 395.415043 115.858103 652492978
137 395.427460 115.805077 652492979
uj5u.com熱心網友回復:
您可以使用這樣的擴展視窗:
increasing_values=df.set_index("time_tag").loc[:,"freq"].expanding().apply(max)
df.loc[df.freq.isin(increasing_values),:]
輸出:
| 頻率 | 信噪比 | 時間標簽 | |
|---|---|---|---|
| 128 | 395.400902 | 115.737681 | 652492975 |
| 134 | 395.415043 | 115.858103 | 652492978 |
| 137 | 395.427460 | 115.805077 | 652492979 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/344593.html
