2017-03-13 6 views
0

...同じ会計年度にどのように日付を見つけるのですか?私のデータフレームは、このようになります

ECSDate DateOfTransfer Amount 
2011-12-04  2011-05-16 25000 
2012-11-10  2011-05-16 3000 
2013-02-19  2011-05-21 13750 

私はECSと転送日付が4月1日に始まり、3月31日に終了し、同じ会計年度である場合に見つける必要があります。

If Month is Jan, Feb or march then: 
2013-02-19 - 1 year = 2012-02-19 and 2012-04-01 is greater than 2011-05-21 so false 

Else: 
2012-11-10 start of year is 2012-04-01 and greater than 2011-05-16 so false 

期待される結果は

True 
False 
False 

編集次のようになります。私が試した

何か。

これは、1歳の日付です:

mydf['NEW_DATE'] = mydf['ECSDate'].apply(lambda x: x - pd.DateOffset(years=1)) 

はそれを比較します

pd.to_datetime(mydf['NEW_DATE'].dt.year, 04, 01) < DateOfTransfer 

編集:

次の文が正しくTrueまたはFalseの値を返しています。しかし、それをデータフレームにどのように適用すればよいですか?

pd.Period('2011-12-04', freq='A-MAR') == pd.Period('2011-05-16', freq='A-MAR') 

pd.Period('2012-11-10', freq='A-MAR') == pd.Period('2011-05-16', freq='A-MAR') 

pd.Period('2013-02-19', freq='A-MAR') == pd.Period('2011-05-21', freq='A-MAR') 

答えて

0
mydf[mydf['ECSDate'].dt.to_period(freq='A-MAR') == mydf['DateOfTransfer'].dt.to_period(freq='A-MAR')] 
関連する問題