Vor kurzem habe ich Code überprüft, der Daten in Python verarbeitet und einfache Warnfunktionen stapelweise verarbeitet.
Unter ihnen war ich überrascht, den folgenden Code zu finden. (Leicht umgeschrieben)
import pandas as pd
def select_this_month(df: pd.DataFrame) -> pd.DataFrame:
"""Extrahieren Sie nur die Daten dieses Monats
Args:
df:Zu filternder Datenrahmen
Returns:
Gefilterter Datenrahmen
"""
now = df["Date"].max()
y, m = now[0:4], now[5:7]
res = df[df['Date'] >= (y + "-" + m + "-01")]
return res
Wenn ich mir diesen Code ansehe, verwende ich pandas'`` `max```, um den Maximalwert zu extrahieren (numerischer Typ oder datetime-Typ?), Slice, um den Teilstring zu extrahieren (Zeichenkettentyp?). Ich fragte mich: "Was ist das? Ein Datums-Typ, der in Pandas eingebaut ist?"
Bei näherer Betrachtung war dies nur ein Zeichenfolgentyp mit einem darin definierten Vergleichsoperator (Ungleichung).
a = '2016-12-31'
b = '2016-01-01'
a > b
# => True
a < b
# => False
Ich habe auch wo das Ergebnis des Vergleichsoperators angegeben ist in der offiziellen Python-Dokumentation gefunden. 。
Strings (instances of str) compare lexicographically using the numerical Unicode code points (the result of the built-in function ord()) of their characters.
Strings and binary sequences cannot be directly compared.
Ich werde es vorerst in Google übersetzen.
Strings (str-Instanzen) werden lexikografisch mit Unicode-Codepunkten für die Zeichen verglichen (Ergebnisse der integrierten Funktion ord ()). [3]
Strings und Binärsequenzen können nicht direkt verglichen werden.
Das ord function document sagt dies ebenfalls aus, sodass Vergleiche anscheinend mit Unicode-Punkten durchgeführt werden.
Gibt für eine Zeichenfolge, die ein einzelnes Unicode-Zeichen darstellt, eine Ganzzahl zurück, die den Unicode-Codepunkt für dieses Zeichen darstellt. Zum Beispiel gibt ord ('a') die ganze Zahl 97 zurück und ord ('€') (das Euro-Symbol) gibt 8364 zurück. Dies ist das Gegenteil von chr ().
Damit
Wenn ja, scheint es auch mit einem Zeichenkettentyp problemlos zu funktionieren.
Ich denke, es ist doch besser, den Datumstyp zu verwenden.
Recommended Posts