Ich möchte Folgendes herausfinden: datetime
Was ist bei einem bestimmten Datum ( Objekt) der entsprechende Wochentag?
Zum Beispiel ist Sonntag der erste Tag, Montag: der zweite Tag ... und so weiter
Und dann, wenn die Eingabe so etwas wie das heutige Datum ist.
Beispiel
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
Die Ausgabe ist vielleicht 6
(da es Freitag ist)
int(datetime.datetime.today().strftime('%w'))
Wenn Sie das Datum auf Englisch haben möchten:
quelle
my_date.strftime('%A')
Wenn Sie das Datum auf Englisch haben möchten:
Lesen Sie mehr: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
quelle
Verwenden Sie
date.weekday()
oderdate.isoweekday()
.quelle
datetime
Objekt (keindate
Objekt) gefragt wurde, möchte ich erwähnen, dass diedatetime
Klasse das gleicheweekday()
und die gleichenisoweekday()
Methoden aufweist.Ich habe dies für eine CodeChef- Frage gelöst .
quelle
Eine Lösung ohne Importe für Daten nach 1700/1/1
quelle
Dies ist eine Lösung, wenn das Datum ein Datum / Uhrzeit-Objekt ist.
quelle
Wenn Sie Datumsangaben als Zeichenfolge haben, ist es möglicherweise einfacher, dies mit dem Zeitstempel von pandas zu tun
Ausgabe:
quelle
Die datetime-Bibliothek gibt manchmal Fehler mit strptime () aus, daher habe ich zur dateutil-Bibliothek gewechselt. Hier ist ein Beispiel, wie Sie es verwenden können:
Die Ausgabe, die Sie daraus erhalten, ist
'Mon'
. Wenn Sie die Ausgabe als "Montag" wünschen, verwenden Sie Folgendes:Das hat bei mir ziemlich schnell geklappt. Ich hatte Probleme bei der Verwendung der datetime-Bibliothek, weil ich den Wochentagsnamen anstelle der Wochentagsnummer speichern wollte und das Format bei der Verwendung der datetime-Bibliothek Probleme verursachte. Wenn Sie damit keine Probleme haben, großartig! Wenn ja, können Sie dies auf jeden Fall tun, da es auch eine einfachere Syntax hat. Hoffe das hilft.
quelle
Angenommen, Sie erhalten den Tag, den Monat und das Jahr, könnten Sie Folgendes tun:
quelle
strftime("%A")
anstelle vonweekday()
Angenommen, Sie haben timeStamp: String-Variable, JJJJ-MM-TT HH: MM: SS
Schritt 1 : Konvertieren Sie es in die dateTime-Funktion mit Blow-Code ...
Schritt 2 : Jetzt können Sie alle erforderlichen Funktionen wie folgt extrahieren, um eine neue Spalte für jede Stunde, jeden Monat, jeden Wochentag, jedes Jahr und jedes Datum zu erstellen
quelle
Wenn Sie Grund haben, die Verwendung des datetime-Moduls zu vermeiden, funktioniert diese Funktion.
Hinweis: Es wird angenommen, dass der Wechsel vom julianischen zum gregorianischen Kalender im Jahr 1582 erfolgt ist. Wenn dies für Ihren interessierenden Kalender nicht zutrifft, ändern Sie die Zeile, wenn Jahr> 1582: entsprechend.
quelle
fg
und zuweisenfj
, innerhalb der Bedingung verschieben, um unnötige Berechnungen zu vermeiden.Wenn Sie nicht nur auf das
datetime
Modul angewiesen sind , ist diescalendar
möglicherweise eine bessere Alternative. So erhalten Sie beispielsweise die Tagescodes:Und das wird dir den Tag selbst geben:
Oder im Stil von Python als Einzeiler:
quelle
Wir können Pandas helfen:
Wie oben im Problem erwähnt Wir haben:
Wenn Sie diese Zeile im Jupyter-Notizbuch ausführen, haben wir eine Ausgabe wie folgt:
Verwenden von Wochentag () und Wochentagsname:
Wenn Sie Wochentage im Ganzzahlformat möchten, verwenden Sie:
Die Ausgabe wird sein:
Und wenn Sie es als Namen des Tages wie Sonntag, Montag, Freitag usw. möchten, können Sie Folgendes verwenden:
Die Ausgabe wird sein:
'Friday'
Wenn Sie eine Datumsspalte im Pandas-Datenrahmen haben, dann:
Angenommen, Sie haben einen Pandas-Datenrahmen mit einer Datumsspalte wie dieser: pdExampleDataFrame ['Dates']. Head (5)
Wenn wir den Namen des Wochentags wie Montag, Dienstag usw. wissen möchten, können wir
.weekday_name
Folgendes verwenden:Die Ausgabe lautet:
Und wenn wir die Ganzzahl des Wochentags aus dieser Datumsspalte wollen, können wir verwenden:
Die Ausgabe sieht folgendermaßen aus:
quelle
Ausgabebeispiel
quelle
Dies sollte Ihnen Ihre tatsächliche Tageszahl geben - 1 = Sonntag, 2 = Montag usw.
quelle
+1
? Es ist üblich, dass die Wochennummer in Python bei Sundat als 0 und Montag als 1 beginnt.Um Sonntag als 1 bis Samstag als 7 zu erhalten, ist dies die einfachste Lösung für Ihre Frage:
Alle von ihnen:
Ausgabe:
quelle
Hier erfahren Sie, wie Sie eine Liste mit aktuellen Daten konvertieren
quelle
Verwenden des Canlendar-Moduls
quelle
Hier ist meine Python3-Implementierung.
quelle
Unten finden Sie den Code zur Eingabe des Datums im Format TT-MM-JJJJ. Sie können das Eingabeformat ändern, indem Sie die Reihenfolge von '% d-% m-% Y' und auch das Trennzeichen ändern.
quelle
Verwenden Sie diesen Code:
quelle
importiere numpy als np
def date (df):
quelle