nth-of-type
работает в соответствии с индексом того же типа элемента, но nth-child
работает только в соответствии с индексом независимо от того, какой тип элементов сиблингов.
Например
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
Предположим, что в выше html мы хотим скрыть все элементы, имеющие класс отдыха.
В этом случае nth-child
и nth-of-type
будут работать точно так же, как и все элементы одного типа, <div>
, поэтому css должен быть
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
OR
.rest:nth-of-type(6), .rest:nth-of-type(7), .rest:nth-of-type(8), .rest:nth-of-type(9), .rest:nth-of-type(10){
display:none;
}
Теперь вам должно быть интересно узнать, в чем разница между nth-child
и nth-of-type
, так что это разница
Предположим, что html is
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
В приведенном выше html тип элемента .rest
отличается от других .rest
- это абзацы, а другие - div, поэтому в этом случае if вы используете nth-child
, вы должны писать так
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
, но если вы используете nss-тип css, это может быть
.rest:nth-of-type(1), .rest:nth-of-type(2), .rest:nth-of-type(3), .rest:nth-of-type(4), .rest:nth-of-type(5){
display:none;
}
Как тип Элементом
blockquote >.rest
является<p>
, поэтому здесьnth-of-type
обнаруживает тип.rest
, а затем он накладывает css на 1-й, 2-й, 3-й, 4-й, 5-й элементы<p>
.
Использование панд: pd.Timestamp("today").strftime("%m/%d/%Y")
Вы упоминаете, что используете Панд (в вашем названии). Если это так, нет необходимости использовать внешнюю библиотеку, вы можете просто использовать to_datetime
>>> pandas.to_datetime('today')
Timestamp('2015-10-14 00:00:00')
. Это всегда будет возвращать сегодняшнюю дату в полночь, независимо от фактического времени (но угадайте, какой аргумент now
сделаю).
Если вам нужна строка mm/dd/yyyy
вместо объекта datetime
, вы можете использовать strftime
(время форматирования строки):
>>> dt.datetime.today().strftime("%m/%d/%Y")
# ^ note parentheses
'02/12/2014'
pd.datetime.now (). Strftime ("% d /% m /% Y")
это даст вывод как '11/02/2019'
вы можете использовать время добавления, если хотите
pd.datetime.now (). Strftime ("% d /% m /% Y% I:% M:% S")
это даст вывод в виде '11 / 02/2019 11:08:26 '
У меня возникла та же проблема, поэтому я пробовал так много вещей, но, наконец, это решение.
import time
print (time.strftime("%d/%m/%Y"))
Простое решение в Python3 +:
import time
todaysdate = time.strftime("%d/%m/%Y")
#with '.' isntead of '/'
todaysdate = time.strftime("%d.%m.%Y")
Вы также можете посмотреть в pandas.Timestamp
, который включает методы, такие как .now
и .today
. В отличие от pandas.to_datetime('now')
, pandas.Timestamp.now()
не будет по умолчанию к UTC:
import pandas as pd
pd.Timestamp.now() # will return California time
# Timestamp('2018-12-19 09:17:07.693648')
pd.to_datetime('now') # will return UTC time
# Timestamp('2018-12-19 17:17:08')
import datetime
def today_date():
'''
utils:
get the datetime of today
'''
date=datetime.datetime.now().date()
date=pd.to_datetime(date)
return date
Df['Date'] = today_date()
это можно было бы безопасно использовать в pandas dataframes.