Jupyter Notebook Как я могу присвоить значение по умолчанию для datepicker и отсортировать время в пределах выбранной даты?

#python-3.x #datepicker #jupyter-notebook

#python-3.x #datepicker #jupyter-notebook

Вопрос:

Я могу попытаться установить условие для некоторых данных, которые находятся в пределах средства выбора времени в datepicker. У меня две проблемы

МОЙ код был

 def show_filter_date(start ,end):
        print(start_dater.value)
    print(end_dater.value)
    time_df = (id_one[(id_one['_source.timestampstring']>pd.to_datetime(start))amp;(id_one['_source.timestampstring']<pd.to_datetime(end))])
    #print(time_df.head(20))
#    time_df = (id_one[(id_one['_source.timestampstring']>pd.to_datetime(start_dater.value))amp;(id_one['_source.timestampstring']<pd.to_datetime(end_dater.value))])
    time_df.head(20)
    
layout = widgets.Layout(width='auto', height='40px')
start_dater = widgets.DatePicker(description='Pick a Start Date',disabled=False)
end_dater = widgets.DatePicker(description='Pick an End Date',disabled=False )
#display(widgets.HBox((start_dater, end_dater)))
#display(start_dater)
#display(end_dater)
#id_one.head()
#combine_date = widgets.HBox((start = start_dater, end = end_dater))
#country_selector =  widgets.Dropdown(
interact(show_filter_date,start = start_dater , end = end_dater)
 
  1. каждый раз, когда я запускаю код, он показывает ошибку
    «Недопустимое сравнение между dtype=datetime64[ns] и NoneType»

Я попытался присвоить значение по умолчанию, например

 start_dater = widgets.DatePicker(description='Pick a Start Date',disabled=False, year = 2020 ,month = 12, day = 1)
 

но это не изменится на 2020/12/01

Итак, как я могу получить значение, отличное от null?

  1. Я терплю неудачу в interact для datepicker, в котором

A) print(time_df.head(20))

Б)

 time_df = (id_one[(id_one['_source.timestampstring']>pd.to_datetime(start_dater.value))amp;(id_one['_source.timestampstring']<pd.to_datetime(end_dater.value))])

time_df.head(20)
 

Только (A) может быть «взаимодействовать» или «обновлять», когда я выбираю день, но не (B)

И для вопроса 2, когда я помещаю time_df.head(20) в СЛЕДУЮЩУЮ ЯЧЕЙКУ, это действительно работает…….

Но я хочу показать результат, как в time_df

Я был бы признателен, если какая-либо помощь

это что id_one -то вроде

 
Index           _source.hdrrId  _source.hdrfId  _source.hdrType  
199            1300                1234                     1  

_source.timestampstring   
199 2020-11-06 09:36:04.800
 

Спасибо!

Джефф

Комментарии:

1. можете ли вы предоставить образец для ваших входных данных id_one ?

Ответ №1:

Я повторил вашу первую ошибку с помощью

 id_one = pd.DataFrame(pd.date_range('20200101','20200202'), columns = ['_source.timestampstring'])
 

Это потому, что вы не установили значение по умолчанию для DatePicker. По умолчанию значение равно None, отсюда и ошибка. Вот исправление (аргумент value — это значение по умолчанию):

 start_dater = widgets.DatePicker(description='Pick a Start Date',disabled=False, value = datetime.date(2020,1,1))
end_dater = widgets.DatePicker(description='Pick an End Date',disabled=False, value = datetime.date(2020,2,1))
 

Я не могу повторить вашу вторую ошибку. Я предполагаю, что вы ставите печать перед time_df = оператором. Вам нужно поместить печать после строки, которая вычисляет time_df

Комментарии:

1. Я думаю, что причина ошибки та же самая. Решил ли мой ответ проблему?

2. спасибо вам за вашу помощь ~ да, ответ по умолчанию решен