具有date参数的函数以在数据框上运行

qazwsx123

我有一个数据框:

df =

 |date        months_left    amount
0|06/09/2019  34             150000
1|25/12/2019  23             70000
2|13/01/2020  7              85000
...

我想定义一个带有日期参数并在数据框中的每一行中运行的函数。它将在数据框中的日期上加上months_left,如果结果日期超过函数中提到的参数日期,则在新列中该值应为0,如果它在参数date下,则该值应相同。因此,理想情况下,如果函数中的参数为2021年12月31日,则它将看起来像这样。

 |date        months_left    amount    new_amount
0|06/09/2019  34             150000    0
1|25/12/2019  23             70000     70000
2|13/01/2020  7              85000     85000

对于第一行,添加到months_left的日期超过31/12/2021,结果值为0。其他行没有超过31/12/2021,因此其金额不受影响

首先确保您的date栏是日期时间

df["date"] = pd.to_datetime(df["date"])  # note it is better to do this when you read the data

然后,您可以使用这种方法来确定您是否在结束日期之前

end_date = datetime.date(2021, 12, 31)  # note you need to import datetime
past_end_date = (df.date.values.astype("datetime64[M]") + df.months_left.values.astype("timedelta64[M]")) > end_date
#  Note a pandas TimedeltaIndex might be an alternative to this numpy approach https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.TimedeltaIndex.html
#  i.e. past_end_date = (df["date"] + pd.TimedeltaIndex(df["months_left"], unit="M")) > end_date
#  the answers will be a bit different on edge cases

现在做一些索引

df["new_amount"] = df["amount"]
df.loc[past_end_date, "new_amount"] = 0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Pandas选定的列数据框上应用具有多个参数的函数

来自分类Dev

在具有多个参数的pandas数据框上应用滚动功能

来自分类Dev

在具有名称的数据框上使用R聚合函数

来自分类Dev

如何在数据框上应用函数

来自分类Dev

R-使用嵌套数据框运行具有不同参数集的函数

来自分类Dev

R-使用嵌套数据框运行具有不同参数集的函数

来自分类Dev

在数据框的每一行上调用自定义函数,每行具有多个参数

来自分类Dev

用于生成函数以从运行时堆栈调用带有参数的函数的模板

来自分类Dev

在具有NaN值的熊猫数据框上运行时精度下降

来自分类Dev

在 R 中使用 if 循环,在具有多列多行的数据框上运行

来自分类Dev

使用addEventListener在javascript中设置单独的函数参数以具有唯一的ID

来自分类Dev

python 2.7,具有位置,关键字参数以及可变数量的参数(任意参数列表)的函数

来自分类Dev

是否可以使具有不同类型的多个参数的函数以任何顺序获取参数而不会过载?

来自分类Dev

是否可以使具有不同类型的多个参数的函数以任何顺序获取参数而不会重载?

来自分类Dev

具有date参数的PL / SQL函数返回错误的输出

来自分类Dev

如何不在数据绑定中将参数传递给具有默认值的参数

来自分类Dev

熊猫在数据框上滚动

来自分类Dev

在数据框上移动列

来自分类Dev

在数据框上使用聚合

来自分类Dev

熊猫使用apply()仅在部分数据框上运行函数

来自分类Dev

使用df.agg在我的数据框上运行函数

来自分类Dev

具有附加输入数据参数绑定的 Azure 函数

来自分类Dev

在数据对象上运行函数

来自分类Dev

如何将对象转换为具有公共无参数构造函数以遵守:new()约束?

来自分类常见问题

熊猫在不同的数据框上具有不同的值

来自分类Dev

熊猫在不同的数据框上具有不同的值

来自分类Dev

创建一个函数以基于给定的参数(如列表和熊猫中的特定条件)在数据框中创建新行

来自分类Dev

在数据框中应用函数时,dim(X)必须具有正长度

来自分类Dev

在数据框上应用均值函数时,by()给出错误。发生了什么?

Related 相关文章

  1. 1

    如何在Pandas选定的列数据框上应用具有多个参数的函数

  2. 2

    在具有多个参数的pandas数据框上应用滚动功能

  3. 3

    在具有名称的数据框上使用R聚合函数

  4. 4

    如何在数据框上应用函数

  5. 5

    R-使用嵌套数据框运行具有不同参数集的函数

  6. 6

    R-使用嵌套数据框运行具有不同参数集的函数

  7. 7

    在数据框的每一行上调用自定义函数,每行具有多个参数

  8. 8

    用于生成函数以从运行时堆栈调用带有参数的函数的模板

  9. 9

    在具有NaN值的熊猫数据框上运行时精度下降

  10. 10

    在 R 中使用 if 循环,在具有多列多行的数据框上运行

  11. 11

    使用addEventListener在javascript中设置单独的函数参数以具有唯一的ID

  12. 12

    python 2.7,具有位置,关键字参数以及可变数量的参数(任意参数列表)的函数

  13. 13

    是否可以使具有不同类型的多个参数的函数以任何顺序获取参数而不会过载?

  14. 14

    是否可以使具有不同类型的多个参数的函数以任何顺序获取参数而不会重载?

  15. 15

    具有date参数的PL / SQL函数返回错误的输出

  16. 16

    如何不在数据绑定中将参数传递给具有默认值的参数

  17. 17

    熊猫在数据框上滚动

  18. 18

    在数据框上移动列

  19. 19

    在数据框上使用聚合

  20. 20

    熊猫使用apply()仅在部分数据框上运行函数

  21. 21

    使用df.agg在我的数据框上运行函数

  22. 22

    具有附加输入数据参数绑定的 Azure 函数

  23. 23

    在数据对象上运行函数

  24. 24

    如何将对象转换为具有公共无参数构造函数以遵守:new()约束?

  25. 25

    熊猫在不同的数据框上具有不同的值

  26. 26

    熊猫在不同的数据框上具有不同的值

  27. 27

    创建一个函数以基于给定的参数(如列表和熊猫中的特定条件)在数据框中创建新行

  28. 28

    在数据框中应用函数时,dim(X)必须具有正长度

  29. 29

    在数据框上应用均值函数时,by()给出错误。发生了什么?

热门标签

归档