Welcher Anteil des Jahres ist bis zu einem gegebenen Timestamp in pandas vergangen?

English Deutsch

Um zu berechnen, welcher Anteil des Jahres seit Jahresbeginn vergangen ist, verwenden Sie diese Funktion:

fraction_of_year_passed.py
import pandas as pd

def fraction_of_year_passed(date):
    """Berechnet, welcher Anteil des aktuellen Jahres bis zum angegebenen Datum bereits vergangen ist"""
    start_of_year = pd.Timestamp(now.year, 1, 1)
    start_of_next_year = pd.Timestamp(now.year + 1, 1, 1)
    # Sekunden im gesamten Jahr und Sekunden seit Jahresbeginn berechnen
    entire_year_seconds = (start_of_next_year - start_of_year).total_seconds()
    seconds_since_start_of_year = (date - start_of_year).total_seconds()
    return seconds_since_start_of_year / entire_year_seconds

Verwendungsbeispiel:

fraction_of_year_passed.py
print(fraction_of_year_passed(pd.Timestamp("2020-03-01"))) # prints 0.16393442622950818

Detaillierte Erklärung:

Zuerst definieren wir den Beginn des Kalenderjahres, zu dem date gehört, und den Beginn des darauffolgenden Kalenderjahres:

fraction_of_year_passed.py
start_of_year = pd.Timestamp(now.year, 1, 1)
start_of_next_year = pd.Timestamp(now.year + 1, 1, 1)

Nun berechnen wir die Anzahl der Sekunden im gesamten Jahr und die Anzahl der vergangen Sekunden zwischen Jahresbeginn und date:

fraction_of_year_passed.py
entire_year_seconds = (start_of_next_year - start_of_year).total_seconds()
seconds_since_start_of_year = (date - start_of_year).total_seconds()

Der Rest ist einfach: Teilen Sie einfach seconds_since_start_of_year / entire_year_seconds, um zu erhalten, welcher Anteil des Jahres bis date vergangen ist.


Check out similar posts by category: Pandas, Python