(嗨,我是新手,所以我可能不知道提出这个问题的最佳方法,但在这里(
顺便说一句,我正在使用熊猫!
我正在寻找一种结构,当另一列中的数字大于之前的数字时,每次将 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替换为您选择的号码(。