如何使用 pandas 获取两个日期之间的天数
How to get number of days between two dates using pandas
我正在尝试使用以下函数获取两个日期之间的天数
df['date'] = pd.to_datetime(df.date)
# Creating a function that returns the number of days
def calculate_days(date):
today = pd.Timestamp('today')
return today - date
# Apply the function to the column date
df['days'] = df['date'].apply(lambda x: calculate_days(x))
结果是这样的
153 days 10:16:46.294037
但我想让它说 153。我该如何处理?
为了提高性能,您可以在不使用 apply
的情况下减去值以避免循环 使用 Series.rsub
从右侧减去:
df['date'] = pd.to_datetime(df.date)
df['days'] = df['date'].rsub(pd.Timestamp('today')).dt.days
工作方式:
df['days'] = (pd.Timestamp('today') - df['date']).dt.days
如果想使用您的解决方案:
df['date'] = pd.to_datetime(df.date)
def calculate_days(date):
today = pd.Timestamp('today')
return (today - date).days
df['days'] = df['date'].apply(lambda x: calculate_days(x))
或者:
df['date'] = pd.to_datetime(df.date)
def calculate_days(date):
today = pd.Timestamp('today')
return (today - date)
df['days'] = df['date'].apply(lambda x: calculate_days(x)).dt.days
df['date'] = pd.to_datetime(df.date)
a) pandas
(pd.Timestamp("today") - df.date).days
b) 这个 numpy 构建函数允许你 select 一个周掩码
np.busday_count(df.date.date(), pd.Timestamp("today").date(), weekmask=[1,1,1,1,1,1,1])
我正在尝试使用以下函数获取两个日期之间的天数
df['date'] = pd.to_datetime(df.date)
# Creating a function that returns the number of days
def calculate_days(date):
today = pd.Timestamp('today')
return today - date
# Apply the function to the column date
df['days'] = df['date'].apply(lambda x: calculate_days(x))
结果是这样的
153 days 10:16:46.294037
但我想让它说 153。我该如何处理?
为了提高性能,您可以在不使用 apply
的情况下减去值以避免循环 使用 Series.rsub
从右侧减去:
df['date'] = pd.to_datetime(df.date)
df['days'] = df['date'].rsub(pd.Timestamp('today')).dt.days
工作方式:
df['days'] = (pd.Timestamp('today') - df['date']).dt.days
如果想使用您的解决方案:
df['date'] = pd.to_datetime(df.date)
def calculate_days(date):
today = pd.Timestamp('today')
return (today - date).days
df['days'] = df['date'].apply(lambda x: calculate_days(x))
或者:
df['date'] = pd.to_datetime(df.date)
def calculate_days(date):
today = pd.Timestamp('today')
return (today - date)
df['days'] = df['date'].apply(lambda x: calculate_days(x)).dt.days
df['date'] = pd.to_datetime(df.date)
a) pandas
(pd.Timestamp("today") - df.date).days
b) 这个 numpy 构建函数允许你 select 一个周掩码
np.busday_count(df.date.date(), pd.Timestamp("today").date(), weekmask=[1,1,1,1,1,1,1])