小编mac*_*ump的帖子

散景日期时间x_range:“ ValueError,无法识别的范围输入”

我有一个数据框df2,看起来像:

DATE       | STATUS
2018-02-01     A
2018-02-02     A
2018-02-02     B
..
2018-02-05     B
Run Code Online (Sandbox Code Playgroud)

所有值都是字符串类型。我似乎无法将日期识别为日期并绘制到堆叠条形图的x轴上。这是我徒劳的最新尝试:

import pandas as pd
from bokeh.io import curdoc
import numpy as np
from bokeh.models import ColumnDataSource, HoverTool,DatetimeTickFormatter
from bokeh.core.properties import value
from bokeh.plotting import figure

#prepare x axis
df2['DATE']=pd.to_datetime(df2['DATE'])
Months=df2["DATE"].tolist()
Months=list(set(Months))  #remove duplicates

IBs=df2["STATUS"].tolist()
IBs=list(set(IBs))

#pivot dataframe
#df2["DATE"]=df2["DATE"].str.strip() #trim values in column
df2=df2.pivot_table(index=['DATE'],columns=['STATUS'], aggfunc=len)
df2=df2.reset_index()
df2=df2.fillna(0) #replace nans with 0

#add plot
source=ColumnDataSource(data=df2)
p= figure(x_range= df2["DATE"], plot_width=700, plot_height=400, x_axis_type='datetime',
x_axis_label='Month', y_axis_label='count')
p.xaxis[0].formatter = DatetimeTickFormatter(days="%Y/%m/%d") …
Run Code Online (Sandbox Code Playgroud)

python datetime pandas bokeh

5
推荐指数
1
解决办法
2562
查看次数

WTForms-Javascript:将 onclick 传递到 WTF 字段

有没有办法将“onclick”传递到 WTForm 字段?我想根据是否选中 WTF 复选框来启用/禁用某个字段。但 WTForms 中的 HTML 不会创建或具有“onclick”参数。

我有一个表格:

class test(Form):
    checkbox=BooleanField('Checkbox')
    required=TextField('Required if checked')
Run Code Online (Sandbox Code Playgroud)

我有 JS:

function disablefld(){
  cb=document.getElementById('checkbox').checked;
  document.getElementById('required').disabled=!cb;
  }
Run Code Online (Sandbox Code Playgroud)

为该复选框生成的 HTML WTForms 为: <input id="checkbox" name="checkbox" type="checkbox" value="y">。它不起作用,因为onclick它不存在。

我已经尝试过checkbox=BooleanField('Checkbox', onclick="disablefld()"),但这是一个意想不到的争论。这是可能的还是我应该用纯 html 制作表单?

html javascript forms flask wtforms

4
推荐指数
1
解决办法
6184
查看次数

pandas-返回包含每年最大值的月份

我有一个数据框,如:

Year Month Value
2017  1     100
2017  2      1
2017  4      2
2018  3      88
2018  4      8
2019  5      87
2019  6      1
Run Code Online (Sandbox Code Playgroud)

我让数据框返回值为最大值的每一年的月份和值:

year  month  value
2017    1      100
2018    3      88
2019    5      87
Run Code Online (Sandbox Code Playgroud)

df=df.groupby(["Year","Month"])['Value']).max()但是,我尝试过类似的方法,它返回完整的数据集,因为每个年/月对都是独一无二的(我相信)。

max dataframe pandas pandas-groupby

4
推荐指数
2
解决办法
4082
查看次数

没有名为“ bokeh.plotting”的模块;散景不是包

我想进口curdoc。我已经尝试过from bokeh.io import curdocfrom bokeh.plotting import curdoc但是都没有用。

我已经尝试过了pip install -U bokehpip install bokeh但仍然返回no module named 'bokeh.plotting; 'bokeh' is not a package'。怎么了?

我现在已经恢复到0.12.1。

python bokeh

3
推荐指数
1
解决办法
2159
查看次数

缩放/标准化熊猫列

我有一个像这样的数据框:

TOTAL | Name
3232     Jane
382      Jack
8291     Jones
Run Code Online (Sandbox Code Playgroud)

我想在数据框中创建一个新缩放的列,SIZE其中where SIZE是5到50之间的数字。

例如:

TOTAL | Name | SIZE
3232     Jane   24.413
382      Jack   10
8291     Jones  50
Run Code Online (Sandbox Code Playgroud)

我试过了

from sklearn.preprocessing import MinMaxScaler
import pandas as pd

scaler=MinMaxScaler(feature_range=(10,50))
df["SIZE"]=scaler.fit_transform(df["TOTAL"])
Run Code Online (Sandbox Code Playgroud)

但是得到了 Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

我尝试了其他方法,例如创建列表,对其进行转换并将其附加回数据框等。

最简单的方法是什么?

谢谢!

python pandas scikit-learn

1
推荐指数
2
解决办法
4607
查看次数

MySQL-无法更新视图,即使它显示为可更新

我创建了一个视图,其中包含INNER JOINS一堆表,但根据 MySQL 规则,这些表似乎仍然可以更新,但更新数据似乎不起作用。这是 WorkBench 中所示的视图:

CREATE 
    ALGORITHM = UNDEFINED 
VIEW `event_registrants` AS
    SELECT 
        `event_details`.`DTT_EVT_start` AS `Event_Start`,
        `attendee_meta`.`ATT_email` AS `ATT_email`,
        `users`.`ID` AS `ID`,
        `user_detail_tbl`.`first_name` AS `first_name`,
        `user_detail_tbl`.`nickname` AS `nickname`,
        `user_detail_tbl`.`last_name` AS `last_name`,
        `registration`.`EVT_ID` AS `EVT_ID`,
        `posts`.`post_title` AS `post_title`,
        `misc_tbl`.`ANS_value` AS `ANS_value`
    FROM
        ((((((`misc_tbl`
        JOIN `registration` ON ((`misc_tbl`.`REG_ID` = `registration`.`REG_ID`)))
        JOIN `event_details` ON ((`registration`.`EVT_ID` = `event_details`.`EVT_ID`)))
        JOIN `posts` ON ((`posts`.`ID` = `registration`.`EVT_ID`)))
        JOIN `attendee_meta` ON ((`registration`.`ATT_ID` = `attendee_meta`.`ATT_ID`)))
        JOIN `users` ON ((`attendee_meta`.`ATT_email` = `users`.`user_email`)))
        JOIN `user_detail_tbl` ON ((`users`.`ID` = …
Run Code Online (Sandbox Code Playgroud)

mysql view sql-update

1
推荐指数
1
解决办法
1384
查看次数

Excel 2016-将电源查询直接加载到电源枢轴中

有没有一种方法可以将功率查询数据直接加载到功率枢轴中,而无需创建excel表作为中间步骤?

我发现的所有示例均参考Excel 2010和2013。尽管说明相似,但在2016年不起作用。

在执行以下步骤后。当我转到Power Pivot中的“​​现有连接”并尝试打开Power Query连接时。我收到一条消息:

“您要打开的连接是使用Power Query创建的。要更改此连接,请使用Power Query。”

是否可以使用Power查询清理/转换数据并将其直接加载到Excel 2016中的Power Pivot?

powerpivot powerquery

0
推荐指数
1
解决办法
3413
查看次数

散景 Hovertool 工具提示将日期显示为数字

对 csv 进行一些转换后,我有一个数据框:

ENTRYDATE |  TRANSACTIONS
2017/05/01     5
2017/05/02     20
..
2018/02/05     15
Run Code Online (Sandbox Code Playgroud)

我将它转换为熊猫中的日期时间并创建了一个带有工具提示的线图

import pandas as pd
from bokeh.models import ColumnDataSource,DatetimeTickFormatter, NumeralTickFormatter, HoverTool
from bokeh.plotting import figure
from bokeh.io import curdoc

df=pd.read_csv(r'C:\Users\file.csv')    
df2=df[['ENTRYDATE']] 
df2['ENTRYDATE']=pd.to_datetime(df2['ENTRYDATE'],infer_datetime_format=True)
df2=(df2.groupby([df2['ENTRYDATE'].dt.date]).size().reset_index(name='Transactions'))
#print(df2)
#print(df2.info())

source=ColumnDataSource(data=df2)

#hovertool

p=figure(plot_width=800,plot_height=500)

hover=HoverTool(tooltips=[("Date","@ENTRYDATE"),("Transactions","@Transactions")],
formatters={"ENTRYDATE":"datetime"},
mode='vline')
p.add_tools(hover)

p.scatter(x="ENTRYDATE",y="Transactions",color='blue', source=source)
p.xaxis.formatter=DatetimeTickFormatter()
p.yaxis.formatter=NumeralTickFormatter(format="0")

curdoc().add_root(p)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,显示 ENTRYDATE 的工具提示实际上并未显示日期(即2017-05-01),而是显示了一些长数字(即14962752000000)。有人可以告诉我如何编辑它以便工具提示以日期格式显示日期吗?

pandas bokeh

0
推荐指数
1
解决办法
2722
查看次数