基于条件创建布尔列,该条件涉及Pandas中当前行和上一行的列值

92vpleto  于 2023-01-07  发布在  其他
关注(0)|答案(1)|浏览(129)

我想添加一个布尔列到此数据框架。

date    open    high     low   close  volume
1912 2023-01-05 09:15:00+05:30  641.80  644.30  626.35  628.60  615758
1913 2023-01-05 10:15:00+05:30  628.60  634.50  624.15  628.25  313480
1914 2023-01-05 11:15:00+05:30  627.80  633.45  627.40  632.80  193937
1915 2023-01-05 12:15:00+05:30  632.70  636.05  630.80  634.65  223713
1916 2023-01-05 13:15:00+05:30  634.65  635.00  629.45  634.90  224242
1917 2023-01-05 14:15:00+05:30  634.80  637.90  633.35  635.85  310906
1918 2023-01-05 15:15:00+05:30  635.90  637.35  633.50  633.55  101989

如果行的“close”值大于上一行的“close "值,则布尔列应显示True,否则应为False。
我该怎么做呢?

vbopmzt1

vbopmzt11#

可以使用.shift(1)与上一行进行比较

df['compare'] = (df['close'] > df['close'].shift(1))
df

                          date    open    high     low   close  volume  compare
1912 2023-01-05 09:15:00+05:30  641.80  644.30  626.35  628.60  615758    False
1913 2023-01-05 10:15:00+05:30  628.60  634.50  624.15  628.25  313480    False
1914 2023-01-05 11:15:00+05:30  627.80  633.45  627.40  632.80  193937     True
1915 2023-01-05 12:15:00+05:30  632.70  636.05  630.80  634.65  223713     True
1916 2023-01-05 13:15:00+05:30  634.65  635.00  629.45  634.90  224242     True
1917 2023-01-05 14:15:00+05:30  634.80  637.90  633.35  635.85  310906     True
1918 2023-01-05 15:15:00+05:30  635.90  637.35  633.50  633.55  101989    False

相关问题