簡體   English   中英

Python - 當另一列中的數字大於 2 之前的數字時,將列中的 x 值保存到列表中

[英]Python - save x values from a column to list when a number in another column is bigger than the number before 2

(嗨,我是新手,所以我可能不知道提出這個問題的最佳方法,但這里是)

我正在使用 pandas 順便說一句!

當另一列中的數字大於之前的數字時,我正在尋找一種構造,每次將 x 值(假設 x=3 三個值)從一列保存到列表中。 不應考慮第一個數字。 需要注意的是,數字列 (NaN) 中也缺少數據。

Number         Value
23             4
23             5
NaN            8
24             6    # <--
24             23
24             26
24             11
25             2    # <--
25             1
25             3
25             5
Nan            9
26             4    # <--
26             6
NaN            9
26             12

希望最終新列表包含:

List = [6, 2, 4]

謝謝你的協助 !

IIUC,嘗試使用ffill ,然后比較series.diff()是否大於 0,然后在x中切片所需的元素數(此處為 3):

x=3
df.loc[df['NumberColumn'].ffill().diff().gt(0),'Value'].tolist()[:x]
#[6, 2, 4]

你可以運行:

df.Value[df.Number.shift().ffill() < df.Number].tolist()[:3]

(用您選擇的數字替換3 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM