计算 python 中仅排除星期日的列中存储的两个日期之间的差异?
Calculate difference between two dates stored in columns excluding only Sunday in python?
df.head(3)
Out[20]:
First_date Second_date
0 2021-09-18 2021-09-17
1 2021-09-22 2021-09-17
2 2021-09-27 2021-09-17
我计算了两者之间的差异 date_columns 但我只想从日期中排除星期日,现在我计算了他整整一周的时间。
df["First_date"] = df['First_date'].astype('datetime64[ns]')
df["Second_date"] = df['Second_date'].astype('datetime64[ns]')
df["days"] = df["First_date"].sub(df ["Second_date"],axis=0)
df.head(3)
Out[20]:
First_date Second_date days
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 5
2 2021-09-27 2021-09-17 10
df.head(3)
Out[20]:
First_date Second_date days expected_outcome
0 2021-09-18 2021-09-17 1 1
1 2021-09-22 2021-09-17 5 4
2 2021-09-27 2021-09-17 10 8
这就是我用来计算到现在的天数的方法。感谢您的帮助:)
尝试:
df["First_date"] = pd.to_datetime(df["First_date"])
df["Second_date"] = pd.to_datetime(df["Second_date"])
sundays = df.apply(lambda x: len(pd.date_range(x["Second_date"], x["First_date"], freq="W-SUN")), axis=1)
df["days"] = (df["First_date"]-df["Second_date"]).dt.days-sundays
>>> df
First_date Second_date days
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 4
2 2021-09-27 2021-09-17 8
尝试:
df["First_date"] = pd.to_datetime(df["First_date"])
df["Second_date"] = pd.to_datetime(df["Second_date"])
df['diff'] = df.apply(lambda x: len(pd.bdate_range(x['Second_date'], x['First_date'], freq="C", weekmask="Mon Tue Wed Thu Fri Sat", closed='right')), axis=1)
print(df)
输出:
First_date Second_date diff
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 4
2 2021-09-27 2021-09-17 8
df.head(3)
Out[20]:
First_date Second_date
0 2021-09-18 2021-09-17
1 2021-09-22 2021-09-17
2 2021-09-27 2021-09-17
我计算了两者之间的差异 date_columns 但我只想从日期中排除星期日,现在我计算了他整整一周的时间。
df["First_date"] = df['First_date'].astype('datetime64[ns]')
df["Second_date"] = df['Second_date'].astype('datetime64[ns]')
df["days"] = df["First_date"].sub(df ["Second_date"],axis=0)
df.head(3)
Out[20]:
First_date Second_date days
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 5
2 2021-09-27 2021-09-17 10
df.head(3)
Out[20]:
First_date Second_date days expected_outcome
0 2021-09-18 2021-09-17 1 1
1 2021-09-22 2021-09-17 5 4
2 2021-09-27 2021-09-17 10 8
这就是我用来计算到现在的天数的方法。感谢您的帮助:)
尝试:
df["First_date"] = pd.to_datetime(df["First_date"])
df["Second_date"] = pd.to_datetime(df["Second_date"])
sundays = df.apply(lambda x: len(pd.date_range(x["Second_date"], x["First_date"], freq="W-SUN")), axis=1)
df["days"] = (df["First_date"]-df["Second_date"]).dt.days-sundays
>>> df
First_date Second_date days
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 4
2 2021-09-27 2021-09-17 8
尝试:
df["First_date"] = pd.to_datetime(df["First_date"])
df["Second_date"] = pd.to_datetime(df["Second_date"])
df['diff'] = df.apply(lambda x: len(pd.bdate_range(x['Second_date'], x['First_date'], freq="C", weekmask="Mon Tue Wed Thu Fri Sat", closed='right')), axis=1)
print(df)
输出:
First_date Second_date diff
0 2021-09-18 2021-09-17 1
1 2021-09-22 2021-09-17 4
2 2021-09-27 2021-09-17 8