Chcę dowiedzieć się, co następuje: biorąc pod uwagę datę ( datetime
obiekt), jaki jest odpowiedni dzień tygodnia?
Na przykład niedziela to pierwszy dzień, poniedziałek: drugi dzień ... i tak dalej
A jeśli dane wejściowe są jak dzisiejsza data.
Przykład
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
Wynik może być 6
(ponieważ jest piątek)
int(datetime.datetime.today().strftime('%w'))
Jeśli chcesz mieć datę w języku angielskim:
źródło
my_date.strftime('%A')
Jeśli chcesz mieć datę w języku angielskim:
Czytaj więcej: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
źródło
Użyj
date.weekday()
lubdate.isoweekday()
.źródło
datetime
przedmiot (niedate
przedmiot), chciałbym wspomnieć, żedatetime
klasa używa tego samegoweekday()
iisoweekday()
metod.Rozwiązałem to dla pytania CodeChef .
źródło
Rozwiązanie bez importu dla dat po 1700/1/1
źródło
Jest to rozwiązanie, jeśli data jest obiektem typu data-godzina.
źródło
Jeśli masz daty jako ciąg, łatwiej może to zrobić za pomocą znacznika czasu pandy
Wynik:
źródło
Biblioteka datetime czasami podaje błędy przy pomocy strptime (), więc przełączyłem się na bibliotekę dateutil. Oto przykład, jak możesz go użyć:
Dane wyjściowe z tego są
'Mon'
. Jeśli chcesz otrzymać wynik jako „poniedziałek”, użyj następujących poleceń:To działało dla mnie dość szybko. Miałem problemy podczas korzystania z biblioteki datetime, ponieważ chciałem zapisać nazwę dnia tygodnia zamiast numeru dnia tygodnia, a format korzystania z biblioteki datetime powodował problemy. Jeśli nie masz z tym problemów, świetnie! Jeśli tak, zdecydowanie skorzystasz z tego, ponieważ ma również prostszą składnię. Mam nadzieję że to pomoże.
źródło
Zakładając, że masz dzień, miesiąc i rok, możesz:
źródło
strftime("%A")
zamiastweekday()
Powiedzmy, że masz zmienną timeStamp: String, RRRR-MM-DD GG: MM: SS
krok 1 : przekonwertuj go na funkcję dateTime z kodem blow ...
Krok 2 : Teraz możesz wyodrębnić wszystkie wymagane funkcje, jak poniżej, które utworzą nową kolumnę dla każdej godziny, miesiąca, dnia tygodnia, roku, daty
źródło
Jeśli masz powód, aby unikać używania modułu datetime, ta funkcja będzie działać.
Uwaga: Zakłada się, że zmiana kalendarza juliańskiego na gregoriański nastąpiła w 1582 r. Jeśli nie jest to prawdą w przypadku twojego kalendarza zainteresowania, zmień linię, jeśli rok> 1582: odpowiednio.
źródło
fg
ifj
, wewnątrz warunkowego, aby zapobiec niepotrzebnym obliczeniom.Jeśli nie polegasz wyłącznie na
datetime
module,calendar
może być lepszą alternatywą. To na przykład zapewni kody dnia:A to da ci sam dzień:
Lub w stylu python, jako jedna linijka:
źródło
Możemy skorzystać z pomocy Pand:
Jak wspomniano powyżej w problemie Mamy:
Jeśli wykonasz ten wiersz w notatniku jupyter, otrzymamy takie dane wyjściowe:
Używając weekday () i weekday_name:
Jeśli chcesz dni tygodnia w formacie liczb całkowitych, użyj:
Dane wyjściowe będą:
A jeśli chcesz, aby była to nazwa dnia, np. Niedziela, poniedziałek, piątek itp., Możesz użyć:
Dane wyjściowe będą:
'Friday'
Jeśli masz kolumnę dat w ramce danych Pandas, to:
Teraz załóżmy, że jeśli masz ramkę danych pandy o takiej kolumnie daty: pdExampleDataFrame ['Daty']. Head (5)
Teraz, jeśli chcemy poznać nazwę dnia tygodnia, np. Poniedziałek, wtorek, itp., Możemy użyć
.weekday_name
w następujący sposób:wyjście będzie:
A jeśli chcemy liczby całkowitej dnia tygodnia z tej kolumny Daty, możemy użyć:
Dane wyjściowe będą wyglądać następująco:
źródło
Próbka wyjściowa
źródło
to powinno dać ci twój prawdziwy numer dnia - 1 = niedziela, 2 = poniedziałek, itd ...
źródło
+1
? Często zdarza się, że numeracja tygodniowa w pythonie rozpoczyna się w niedzielę jako 0, a w poniedziałek jako 1.Aby uzyskać niedzielę od 1 do soboty jako 7, jest to najprostsze rozwiązanie twojego pytania:
Wszyscy:
Wynik:
źródło
oto jak przekonwertować listę dat na datę
źródło
Korzystanie z modułu Canlendar
źródło
Oto moja implementacja python3.
źródło
użyj tego kodu:
źródło
zaimportuj numpy jako np
data def (df):
źródło