Python
 Computer >> コンピューター >  >> プログラミング >> Python

開始日と終了日の範囲からの合計営業日数を計算するPython関数を記述します


日付のdate_rangeがあり、合計営業日数の結果が次のようになっていると仮定します。

Dates are:
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-06',
               '2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10',
               '2020-01-13', '2020-01-14', '2020-01-15', '2020-01-16',
               '2020-01-17', '2020-01-20', '2020-01-21', '2020-01-22',
               '2020-01-23', '2020-01-24', '2020-01-27', '2020-01-28',
               '2020-01-29', '2020-01-30', '2020-01-31'],
               dtype='datetime64[ns]', freq='B')
Total number of days: 23

ソリューション1

  • 関数をbusiness_days()

    として定義します
  • pd.bdate_range()関数の開始値を「2020-01-01」、終了値を「2020-02-02」に設定し、日付として保存します。

dates = pd.bdate_range('2020-01-01','2020-02-02')
  • len(dates)

    を使用して日数を計算します
len(dates)

理解を深めるために、次のコードを確認してみましょう-

import pandas as pd
def business_days():
   dates = pd.bdate_range('2020-01-01','2020-02-02')
   print("Total number of days:",len(dates))
business_days()

出力

Total number of days: 23

ソリューション2

  • 関数を定義する

  • pd.bdate_range()関数の開始値を「2020-01-01」、終了値を「2020-02-02」に設定し、日付として保存します。

dates = pd.bdate_range('2020-01-01','2020-02-02')
  • countを0に設定し、forループを作成して、日付のすべての値にアクセスし、count値自体を1ずつインクリメントします

count = 0
   for i in dates:
      count = count + 1
  • 最後に、カウントを印刷します。

import pandas as pd
def business_days():
   dates = pd.bdate_range('2020-01-01','2020-02-02')
   count = 0
   for i in dates:
      count = count + 1
   print("Total number of days:",count)
business_days()

出力

Total number of days: 23

  1. Pythonを使用して2つの日付の間の日数を計算するにはどうすればよいですか?

    Pythonで、単純な日付の算術を使用して、2つの日付の間の日数を見つけることができます。日の違いを見つけたい2つの日付を定義します。次に、これらの日付を減算してtimedeltaオブジェクトを取得し、このオブジェクトのdaysプロパティを調べて、必要な結果を取得します。 例 from datetime import date d0 = date(2017, 8, 18) d1 = date(2017, 10, 26) delta = d1 - d0 print(delta.days) 出力 これにより出力が得られます- 69

  2. Pythonの正規表現で開始と終了を一致させるにはどうすればよいですか?

    指定された文字列「TestCountryHello」があります。文字「T」と「y」でそれぞれ開始および終了する文字列の部分を一致させて印刷するには、正規表現でモジュールre、単語境界アンカー\ b、および非空白文字\Sのfindallメソッドを使用します。 例 import re result = re.findall(r"\bT\S+y\b", 'TestCountry Hello') print result 出力 として出力を取得するには ['TestCountry']