如何减去两个日期列并且结果仅为正整数

时间:2021-02-23 16:50:13

标签: python pandas dataframe datetime timedelta

    Employee ID Name    Leave From  Leave To     Leave Days
    10107       Habib   2020-10-31  2020-01-11   -293 days +00:00:00

我想提取总数。通过从离开列中减去离开列中的每个员工的休假天数。这适用于大多数情况并返回积极的结果。但是有些记录的结果是负数和荒谬的,并且是一个非常大的整数。我应该如何满足离开列的日期值小于离开列的日期值的日期。由于仅这些类型的行问题仍然存在。

2 个答案:

答案 0 :(得分:0)

试试clip

df['Leave Day'] = df['Leave To'].sub(df['Leave From']).clip(0)

答案 1 :(得分:0)

像这样:

df['Leave From'] = pd.to_datetime(df['Leave From'], format="%Y-%m-%d")
df['Leave To'] = pd.to_datetime(df['Leave To'], format="%Y-%m-%d")
df['Leave Days'] = np.where(df['Leave To']<df['Leave From'], 0, (df['Leave To']-df['Leave From']).dt.days)