`pandas.tseries.offsets 'schwer zu prognostizieren ErgebnisPython

Python-Programme
Anonymous
 `pandas.tseries.offsets 'schwer zu prognostizieren Ergebnis

Post by Anonymous »

Ich fand es wirklich schwierig, die von pandas.tseries.Offsets erzeugten Ergebnisse vorherzusagen, insbesondere wenn n == 0 . Unten finden Sie ein Beispiel mit monatend und monatBegin .

Code: Select all

import pandas as pd
from pandas.tseries.offsets import MonthEnd, MonthBegin

date_ = pd.to_datetime('20240601')
print(date_ + MonthBegin(0))  # 2024-06-01 00:00:00
print(date_ - MonthBegin(0))  # 2024-06-01 00:00:00
print(date_ + MonthBegin(1))  # 2024-07-01 00:00:00, different from `+ MonthBegin(0)`
print(date_ - MonthBegin(1))  # 2024-05-01 00:00:00
print(date_ + MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ - MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ + MonthEnd(1))  # 2024-06-30 00:00:00, same with `+ MonthEnd(0)`
print(date_ - MonthEnd(1))  # 2024-05-31 00:00:00
print('\n')

date_ = pd.to_datetime('20240615')
print(date_ + MonthBegin(0))  # 2024-07-01 00:00:00
print(date_ - MonthBegin(0))  # 2024-07-01 00:00:00
print(date_ + MonthBegin(1))  # 2024-07-01 00:00:00, same with `+ MonthBegin(0)`
print(date_ - MonthBegin(1))  # 2024-06-01 00:00:00
print(date_ + MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ - MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ + MonthEnd(1))  # 2024-06-30 00:00:00, same with `+ MonthEnd(0)`
print(date_ - MonthEnd(1))  # 2024-05-31 00:00:00
print('\n')

date_ = pd.to_datetime('20240630')
print(date_ + MonthBegin(0))  # 2024-07-01 00:00:00
print(date_ - MonthBegin(0))  # 2024-07-01 00:00:00
print(date_ + MonthBegin(1))  # 2024-07-01 00:00:00, same with `+ MonthBegin(0)`
print(date_ - MonthBegin(1))  # 2024-06-01 00:00:00
print(date_ + MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ - MonthEnd(0))  # 2024-06-30 00:00:00
print(date_ + MonthEnd(1))  # 2024-07-31 00:00:00, different from `+ MonthEnd(0)`
print(date_ - MonthEnd(1))  # 2024-05-31 00:00:00
Wenn ich einen if mondeBegin () hinzufügen muss. Gibt es eine Möglichkeit, die Logik zu vereinfachen und die Ergebnisse vorhersehbar zu machen? z.

Code: Select all

for date_ in ['20240601', '20240615' ,'20240630']:
# In a sentence, `n==0` indicates this month, `n==-1` means the previous month and `n==1` means the next month.
date_= pd.to_datetime(date_)
print(date_ + MonthBegin(0))  # == 2024-06-01 00:00:00
print(date_ - MonthBegin(0))  # == 2024-06-01 00:00:00
print(date_ + MonthBegin(1))  # == 2024-07-01 00:00:00
print(date_ - MonthBegin(1))  # == 2024-05-01 00:00:00
print(date_ + MonthEnd(0))  # == 2024-06-30 00:00:00
print(date_ - MonthEnd(0))  # == 2024-06-30 00:00:00
print(date_ + MonthEnd(1))  # == 2024-07-31 00:00:00
print(date_ - MonthEnd(1))  # == 2024-05-31 00:00:00

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post