繁体   English   中英

如何使用 pandas 获取两个日期之间的天数

[英]How to get number of days between two dates using pandas

我正在尝试使用以下 function 获取两个日期之间的天数

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 天 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 构建 function 允许您 select 一个星期掩码

 np.busday_count(df.date.date(), pd.Timestamp("today").date(), weekmask=[1,1,1,1,1,1,1])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM