Quero descobrir o seguinte: dada uma data ( datetime
objeto), qual é o dia da semana correspondente?
Por exemplo, domingo é o primeiro dia, segunda-feira: segundo dia ... e assim por diante
E então, se a entrada é algo como a data de hoje.
Exemplo
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
A saída é talvez 6
(desde sexta-feira)
int(datetime.datetime.today().strftime('%w'))
Se você deseja ter a data em inglês:
fonte
my_date.strftime('%A')
Se você deseja ter a data em inglês:
Leia mais: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
fonte
Use
date.weekday()
oudate.isoweekday()
.fonte
datetime
objeto (não a umdate
objeto), eu gostaria de mencionar que adatetime
classe ostenta o mesmoweekday()
eisoweekday()
métodos.Resolvi isso para uma pergunta do CodeChef .
fonte
Uma solução sem importações para datas após 1700/1/1
fonte
Esta é uma solução se a data for um objeto datetime.
fonte
Se você tiver datas como uma sequência, pode ser mais fácil fazê-lo usando o carimbo de data e hora do panda
Resultado:
fonte
Às vezes, a biblioteca datetime fornece erros com strptime (), então mudei para a biblioteca dateutil. Aqui está um exemplo de como você pode usá-lo:
A saída que você obtém disso é
'Mon'
. Se você deseja que a saída seja 'Segunda-feira', use o seguinte:Isso funcionou para mim rapidamente. Eu estava tendo problemas ao usar a biblioteca de data e hora porque queria armazenar o nome do dia da semana em vez do número do dia da semana e o formato de usar a biblioteca de data e hora estava causando problemas. Se você não está tendo problemas com isso, ótimo! Se você é, você pode optar por isso, pois ele também possui uma sintaxe mais simples. Espero que isto ajude.
fonte
Supondo que você receba o dia, mês e ano, você pode:
fonte
strftime("%A")
, em vez deweekday()
Digamos que você tenha timeStamp: variável de sequência, AAAA-MM-DD HH: MM: SS
passo 1 : converta-o para a função dateTime com código de sopro ...
Etapa 2 : Agora você pode extrair todos os recursos necessários, como abaixo, que criarão uma nova coluna para cada hora, mês, dia da semana, ano, data
fonte
Se você tiver motivos para evitar o uso do módulo datetime, essa função funcionará.
Nota: Presume-se que a mudança do calendário juliano para o gregoriano tenha ocorrido em 1582. Se isso não for verdade para o seu calendário de interesse, altere a linha se ano> 1582: adequadamente.
fonte
fg
efj
, dentro da condicional para evitar cálculos desnecessários.Se você não depende apenas do
datetime
módulo,calendar
pode ser uma alternativa melhor. Isso, por exemplo, fornecerá os códigos do dia:E isso lhe dará o dia em si:
Ou no estilo python, como um liner:
fonte
Podemos ter ajuda do Pandas:
Como mencionado acima no problema, temos:
Se executar esta linha no notebook jupyter, temos uma saída como esta:
Usando weekday () e weekday_name:
Se você deseja dias da semana no formato de número inteiro, use:
A saída será:
E se você quiser como nome do dia, como domingo, segunda, sexta, etc, você pode usar:
A saída será:
'Friday'
Se tiver uma coluna de datas no quadro de dados do Pandas, então:
Agora, suponha que se você possui um dataframe do pandas com uma coluna de data como esta: pdExampleDataFrame ['Dates']. Head (5)
Agora, se queremos saber o nome do dia da semana, como segunda, terça-feira, etc. etc, podemos usar
.weekday_name
o seguinte:a saída será:
E se quisermos o número inteiro de dias da semana nessa coluna Datas, podemos usar:
A saída terá a seguinte aparência:
fonte
Amostra de saída
fonte
isso deve fornecer o número do seu dia real - 1 = domingo, 2 = segunda-feira, etc ...
fonte
+1
? É Senso comum que a weeknumbering em python começa em Sundat como 0 e segunda-feira como 1.Para obter domingo de 1 a sábado de 7, esta é a solução mais simples para sua pergunta:
Todos eles:
Resultado:
fonte
aqui está como converter uma lista de datas para data
fonte
Usando o módulo Canlendar
fonte
Aqui está minha implementação python3.
fonte
Abaixo está o código para inserir a data no formato DD-MM-AAAA. Você pode alterar o formato de entrada alterando a ordem de '% d-% m-% Y' e também alterando o delimitador.
fonte
use este código:
fonte
importar numpy como np
data de definição (df):
fonte