dateutilの相対デルタを使用してクラスのエラーが発生しました。私のコードはここにある:dateutilのrelativedeltaで+1(期間)と-1日を追加する際の問題
#import packages
import numpy as np
import pandas as pd
import datetime as dt
from dateutil.relativedelta import relativedelta
from pandas import DataFrame
from pandas import Series
#timing
pers = 12
monthpp = 1
month_per = int(pers/monthpp)
sdate = dt.date(2016,1,1)
ops = dt.date(2016,3,15)
bop1 = sdate
eop1 = bop1 + relativedelta(months =+ 1, days =- 1)
edate = sdate + relativedelta(months =+ month_per)
rng_bop = pd.date_range(bop1, freq = 'MS', periods = pers)
rng_eop = pd.date_range(eop1, freq = 'M', periods = pers)
ops_line = ops >= rng_bop and ops <= rng_eop
#outputs
print(sdate)
print(edate)
print(rng_bop)
print(rng_eop)
誰かが私の方法へのより良い代替手段を持っている場合、私はそれに開いているだろう - 私は、PythonにExcelのものを翻訳しようとしている、超効率的にそれをやっていない可能性があります。
この部分の目標は、月、四半期、または半年または半年ごとに期間を調整できることですが、今のところ数カ月でうれしいです。 EOPラインは(BOP +期間 - 1日)にする必要があります。
また、私のops_line定義がうまくいかないと思います。論理演算子からブール値の配列を作成しようとしています。任意のポイント?
私はあなたのコードをコメントするか、少なくともあなたの変数のための適切なネーミングを使用するようにアドバイスしたいと思います。 –
適切な命名法を拡張するのに気をつけてください。 – user7038639
'rng_bop'はどういう意味ですか?もちろん、あなたはそれを理解していて、その言葉の略語を知っていて、人々がどのようにそれを捉えることができないのだろうと思うかもしれませんが、本当に多くの人がそのような質問に答えるのをスキップします。私はスタックオーバーフローに関する質問に答える前に、少なくとも私がコードにジャンプして読んでそれを理解してみるだけでなく、質問を読む前に穴を見つけようとしていることをよく知っています。私/私は変数が私にそれをスキップする意味がない質問が発生します。私は入力としてこれを批判ではないと願っています –