gpt4 book ai didi

python - 获取 Pandas 中两行之间的差异

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:42 24 4
gpt4 key购买 nike

您好,我在 stackoverflow 上阅读了很多关于这个问题的问题,但我有一些不同的任务。

我有这个 DF:

#    DateTime       Close   
1 2000-01-04 1460
2 2000-01-05 1470
3 2000-01-06 1480
4 2000-01-07 1450

我想获得关闭列的每一行之间的差异,但如果差异是正数或负数,则存储一个 [1-0] 值。我想要这个结果:

#    DateTime       Close  label 
1 2000-01-04 1460 1
2 2000-01-05 1470 1
3 2000-01-06 1480 1
4 2000-01-07 1450 0

我这样做过:

df = pd.read_csv(DATASET_path)
df['Label'] = 0
df['Label'] = (df['Close'] - df['Close'].shift(1) > 1)

问题是结果移动了一行,所以我从第二行而不是第一行开始得到差异。 (我还得到了一个 bool 值 [True, False] 而不是 1 或 0)。

这是我得到的:

#    DateTime       Close  label 
1 2000-01-04 1460
2 2000-01-05 1470 True
3 2000-01-06 1480 True
4 2000-01-07 1450 True

有什么解决办法吗?

谢谢

最佳答案

您可以使用 DataFrame.diff并检查哪些一阶差分大于 0。最后使用 .astype(int) 将结果转换为 int:

df['label'] = df.Close.diff().fillna(1).gt(0).astype(int)

输出

   #    DateTime  Close  label
0 1 2000-01-04 1460 1
1 2 2000-01-05 1470 1
2 3 2000-01-06 1480 1
3 4 2000-01-07 1450 0

关于python - 获取 Pandas 中两行之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54943957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com