Python - 保存一列中的 x 值,以便在另一列中的数字大于 2 之前的数字时列出



(嗨,我是新手,所以我可能不知道提出这个问题的最佳方法,但在这里(

顺便说一句,我正在使用熊猫!

我正在寻找一种结构,当另一列中的数字大于之前的数字时,每次将 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替换为您选择的号码(。

相关内容

最新更新