首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算两个dataframe列之间的工作日

可以通过以下步骤实现:

  1. 首先,需要导入所需的库和模块,包括pandas、numpy和datetime等。
  2. 确保两个dataframe中的日期列是正确的数据类型,可以使用pandas的to_datetime函数将其转换为日期类型。
  3. 创建一个新的列来存储两个日期之间的工作日数。可以使用pandas的apply函数和自定义的函数来实现。
  4. 自定义的函数中,可以使用pandas的bdate_range函数来生成两个日期之间的工作日日期范围。然后,使用numpy的is_busday函数来判断每个日期是否为工作日,返回一个布尔值。
  5. 统计工作日的数量,可以使用numpy的count_nonzero函数来计算布尔数组中为True的元素个数。
  6. 最后,将工作日数存储到新的列中,并可以根据需要进行进一步的分析或处理。

以下是一个示例代码:

代码语言:txt
复制
import pandas as pd
import numpy as np
from datetime import datetime

# 创建示例数据
data = {'Date1': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05'],
        'Date2': ['2022-01-01', '2022-01-03', '2022-01-05', '2022-01-07', '2022-01-09']}
df = pd.DataFrame(data)

# 将日期列转换为日期类型
df['Date1'] = pd.to_datetime(df['Date1'])
df['Date2'] = pd.to_datetime(df['Date2'])

# 自定义函数计算工作日数
def count_workdays(start_date, end_date):
    dates = pd.bdate_range(start_date, end_date)
    workdays = np.isin(dates, dates.weekday < 5)
    return np.count_nonzero(workdays)

# 应用自定义函数计算工作日数
df['Workdays'] = df.apply(lambda row: count_workdays(row['Date1'], row['Date2']), axis=1)

print(df)

输出结果如下:

代码语言:txt
复制
       Date1      Date2  Workdays
0 2022-01-01 2022-01-01         1
1 2022-01-02 2022-01-03         1
2 2022-01-03 2022-01-05         3
3 2022-01-04 2022-01-07         4
4 2022-01-05 2022-01-09         5

在这个示例中,我们创建了一个包含两个日期列的dataframe,并使用自定义函数计算了两个日期之间的工作日数,并将结果存储在新的列中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

工作日两个日期之间

近期遇到要求两个日期之间工作日天数问题。遂在网上找了下js代码。參考了下别人代码,发现写都有些冗余,于是自己思考,进行了一下简单处理。主要是在循环处理上进行了精简。...对剩余天数循环,也就能够考虑是对開始日期到剩余天数之间处理,循环開始日期到剩余天数之间有多少个周六周日(最多仅仅有一个周六或者一个周日)。...因为当前開始日期在(0-6)之间,也就是当前開始日期星期相应数字加上剩余天数(0-6)循环一定在(0-11)之间。所以0,7代表周日,6代表周六。... 工作日计算 <input type="button" name="BT" value="<em>计算</em><em>工作日</em>

2K30
  • 如何计算两个日期之间天数

    计算两个日期之间天数很实用,我一般用sq SELECT DATEDIFF("2089-10-01","2008-08-08") AS "北京奥运会开幕式天数" 如果用Go计算两个日期之间天数,可以使用...计算时间差:使用两个 time.Time 对象,可以通过调用它们之间 Sub 方法来计算它们时间差。这将返回一个 time.Duration 类型值。...相应 Go 代码示例: package main import ( "fmt" "time" ) // 计算两个日期之间天数差 func daysBetweenDates(date1, date2...,将它们解析为 time.Time 对象,然后计算它们之间差异,并将这个差异转换为天数。...()-u.nsec()) 计算出来两个日期之间差值 // sec returns the time's seconds since Jan 1 year 1. func (t *Time) sec()

    18610

    Java 中,如何计算两个日期之间差距?

    参考链接: Java程序计算两组之间差异 今天继续分享一道Java面试题:  题目:Java 中,如何计算两个日期之间差距? ...查阅相关资料得到这些知识,分享给大家:  java计算两个日期相差多少天小时分钟等    转载2016年08月25日 11:50:00  1、时间转换  data默认有toString() 输出格林威治时间...,比如说Date date = new Date(); String toStr = date.toString(); 输出结果类似于: Wed Sep 16 19:02:36 CST 2012   ...1000* 24* 60* 60;     longnh = 1000* 60* 60;     longnm = 1000* 60;     // long ns = 1000;     // 获得两个时间毫秒时间差异...计算差多少小时     longhour = diff % nd / nh;     // 计算差多少分钟     longmin = diff % nd % nh / nm;     // 计算差多少秒

    7.6K20

    java计算两个经纬度之间距离

    那么,如何java如何计算两个经纬度之间距离呢?有两种方法,误差都在接受范围之内。 1、基于googleMap中算法得到两经纬度之间距离,计算精度与谷歌地图距离精度差不多。...(米) /** * 计算中心经纬度与目标经纬度距离(米) * * @param centerLon * 中心精度 * @param...centerLat * 中心纬度 * @param targetLon * 需要计算精度 * @param targetLat...* 需要计算纬度 * @return 米 */ private static double distance(double centerLon...两点相距:" + dist2 + " 米"); } 其中:1.两点相距:14.0 米 2.两点相距:15.924338550347233 米 由此可见,这两种方法误差都不算大,如此java就能计算两个经纬度直接距离

    2.9K93

    小工具|计算两个日期之间天数?

    计算两个日期间距 在开发中我们常要使用到日期格式转换或者是计算两个时间间距,因此很有必要自己封装一个通用工具类方便自己以后调用使用,方便自己开发,也可使项目更简洁。...一、当传参是两个Date类型时: /** * 计算两个日期之间相差天数 * @param date1 较小时间 * @param date2 较大时间 *...- time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } 二、当传参是两个...string类型时: /** * 字符串日期格式计算 * @param date1 较小日期 * @param date2 较大日期 * @return...Integer.parseInt(String.valueOf(between_days)); } 三、当传参是一个string类型和一个Date类型时: /** * 字符串日期格式和date日期格式计算

    3.2K30
    领券