我可以尝试设置日期选择器中时间选择器内的某些数据的条件。我有两个问题
我的代码是
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))&(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))&(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)
- 每次我运行代码时,它都会显示错误"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以外的值呢?
- 我在与日期选择器交互时失败
A(print(time_df.head(20))
B(
time_df = (id_one[(id_one['_source.timestampstring']>pd.to_datetime(start_dater.value))&(id_one['_source.timestampstring']<pd.to_datetime(end_dater.value))])
time_df.head(20)
只有(A(可以是"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
谢谢!
Jeff
我用复制了您的第一个错误
id_one = pd.DataFrame(pd.date_range('20200101','20200202'), columns = ['_source.timestampstring'])
这是因为您没有为DatePicker设置默认值。默认情况下,该值为"无",因此会出现错误。以下是修复方法(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))
我无法复制你的第二个错误。我的猜测是,您将print放在time_df =
语句之前。您需要将打印放在计算time_df
的行之后