gpt4 book ai didi

python - Pandas – 创建缓冲列

转载 作者:行者123 更新时间:2023-11-28 22:26:22 25 4
gpt4 key购买 nike

DataFrame 以 refvalue 作为列:

    ref  value  buffer
0 0 0 0
1 1 3 0
2 2 4 0
3 0 2 2
4 8 21 2
5 0 -2 -2
6 3 13 -2
7 6 17 -2
8 2 4 -2
9 0 5 5
10 0 5 5

您将如何创建符合此定义的第三个 buffer 列:

  • 如果 ref == 0 那么 buffer = value
  • 如果 ref != 0 那么缓冲区 = 最近的前一行的值,其中 ref = 0

最佳答案

df.ref == 0 时,使用 where 保留 df.value。其余的将是 np.nan。使用 ffill 从前面的行中填充 np.nan。使用分配创建新列。

请注意,我没有将该列转换为 int。我将其排除在外是因为 ref 的前几行可能不为零。如果发生这种情况,缓冲区的初始行将是 np.nan,没有任何内容可以向前填充。在这种情况下,我无法转换为 int。

df.assign(buffer=df.value.where(df.ref.eq(0)).ffill())

关于python - Pandas – 创建缓冲列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44856279/

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