In[21]: from bokeh.charts import Bar, output_file, show
In[22]: dict = {'sec': {u'A': 10, u'B': 20}}
In[23]: df = pd.DataFrame(dict)
In[24]: df
Out[24]:
sec
A 10
B 20
In[25]: output_file("bar.html")
In[26]: p = Bar(df)
In[27]: show(p)
Run Code Online (Sandbox Code Playgroud)
我想要一个带有A和B标签的条形图,2个尺寸为10和20的条形图:
此示例不呈现任何内容.
我尝试使用values =,labels = etc进行各种变化,但似乎数据总是默认汇总(agg ='sum')
Bar对象是否太高,无法绘制我想要的内容(2个条形,大小10和20,名为A和B)或者我是否错误地使用了对象?DataFrame我使用了错误的'格式',我应该把索引放在一列吗?如果有人可以提供一个非常简单的图表的例子,那就太棒了!
编辑:得到它使用这个,太糟糕的DataFrame索引不能是标签,这对我来说似乎合乎逻辑:)
import pandas as pd
from bokeh.charts import Bar
from bokeh.io import output_notebook, show
output_notebook()
dict = {'values': {u'A': 10, u'B': 20}}
df = pd.DataFrame(dict)
df['label'] = df.index
df
p = Bar(df, values='values',label='label')
show(p)
Run Code Online (Sandbox Code Playgroud) 我从事一个涉及"刮"部分和"网"部分的项目.我使用scrapy框架进行刮擦,烧瓶框架.
是否可以在同一个项目中配置PyCharm以使用2个解释器,一个2.7用于scrapy部件,一个3.x用于烧瓶部件?
我有这段代码,它很好地绘制了 1 行和 6 列的图,我尝试将其绘制为 2x3 或 3x2,但没有成功。 pandas 的 .plot() 实现中是否缺少某些内容?
fig, axes = plt.subplots(nrows=1, ncols=6)
spfvL = [6, 11, 22, 33, 44, 55]
for j, i in enumerate(spfvL):
df['spfv' + str(i)] = pd.rolling_std(df['r VIX'], i)*np.sqrt(252)
res = smf.ols(formula='spfv'+ str(i)+' ~ Q(\'VIX Index\')', data=df).fit()
df['pred'+ str(i)] = better_predict(res, df)
df.loc[:,['pred' + str(i), 'spfv' + str(i)]].plot(ax=axes[j])
Run Code Online (Sandbox Code Playgroud)
编辑:为了获得 2x3,我在下面尝试了,没有太大变化。
axis 的形状为 (2,3),我无法将正确的参数传递到最后一行 ax=axes。理想情况下,我应该有类似 ax =axes[x][y] 的东西,其中 (x,y) 位于 [(0,0), (0,1), (0,2), (1,0), (1 ,1), (1,2)] 因此具有精确的轴形状,但我只能枚举来获取“索引”列表......
fig, axes = plt.subplots(nrows=2, ncols=3) …
Run Code Online (Sandbox Code Playgroud) 下面的代码段会提示输入用户名和密码,默认为env变量.
现在虽然密码输入在键入时很好地隐藏了,但我也希望隐藏括号之间的默认值,到目前为止,如果我输入此密码,则密码默认为明确1234:
? export PASSWORD=1234
? python test.py
? User [myuser]: you can see here
? Password [1234]:
user you can see here
password you cant see
import os
import click
@click.command()
@click.option('--user', prompt=True, default=lambda: os.environ.get('USER', ''))
@click.option('--password', prompt=True, default=lambda: os.environ.get('PASSWORD', ''), hide_input=True)
def test(user, password):
print('user {}'.format(user))
print('password {}'.format(password))
print(password)
if __name__ == '__main__':
test()
Run Code Online (Sandbox Code Playgroud) 我有一段代码,它在目录中循环 excel 文件,将文件添加到 sqlite db 中。如果表存在,我设法克服了引发的异常,但我发现这既不优雅又低效,因为循环读取 excel 文件,将其添加到数据框等中......理想情况下我想要的是我测试存在从 excel 创建 df 之前的表。
response = {}
for f in glob('T:\GESTION\toto\titi\tata\file_201*.xlsx'):
print f
datereg = re.search('T:\\\\GESTION\\\\toto\\\\titi\\\\tata\\\\file_(\d{4})(\d{2})(\d{2}).xlsx', f)
if datereg is not None:
dated = datetime.datetime(int(datereg.group(1)), int(datereg.group(2)), int(datereg.group(3)))
print dated
# ideally test if table in db exists here
xl = pd.ExcelFile(f)
df = xl.parse(sheetname="Sheet1")
df = df[extractFields].drop_duplicates(subset='ISIN')
df = df.set_index('ISIN', verify_integrity=True)
response[dated] = df
# print response
engine = sqlalchemy.create_engine('sqlite:///my_db.sqlite')
try:
df.to_sql(dated.__str__(), engine, if_exists='fail')
except ValueError as err:
print(err)
pass
Run Code Online (Sandbox Code Playgroud) 我正在玩谷歌地方api和请求
我有 :
r = requests.get(self.url, params={'key': KEY, 'location': self.location, 'radius': self.radius, 'types': "airport"}, proxies=proxies)
Run Code Online (Sandbox Code Playgroud)
r返回200代码,很好,但我对r.json()返回与r.content相比感到困惑
r.json()的摘录:
{u'html_attributions ':[],u'next_page_token':u'CoQC-QAAABT4REkkX9NCxPWp0JcGK70kT4C-zM70b11btItnXiKLJKpr7l2GeiZeyL5y6NTDQA6ASDonIe5OcCrCsUXbK6W0Y09FqhP57ihFdQ7Bw1pGocLs_nAJodaS4U7goekbnKDlV3TaL8JMr4XpQBvlMN2dPvhFayU6RcF5kwvIm1YtucNOAUk-o4kOOziaJfeLqr3bk_Bq6DoCBwRmSEdZj34RmStdrX5RAirQiB2q_fHd6HPuHQzZ8EfdggqRLxpkFM1iRSnfls9WlgEJDxGB91ILpBsQE3oRFUoGoCfpYA-iW7E3uUD_ufby-JRqxgjD2isEIn8tntmFDjzQmjOraFQSEC6RFpAztLuk7l2ayfXsvw4aFO9gIhcXtG0LPucJkEa2nj3PxUDl",u'results ':[{u'geometry':{u'location ':{U' lat': - 33.939923,u'lng':151.175276}},
而r.content的提取:
"{\n "个html_attributions":[],\n "个next_page_token":"CoQC-QAAABT4REkkX9NCxPWp0JcGK70kT4C-zM70b11btItnXiKLJKpr7l2GeiZeyL5y6NTDQA6ASDonIe5OcCrCsUXbK6W0Y09FqhP57ihFdQ7Bw1pGocLs_nAJodaS4U7goekbnKDlV3TaL8JMr4Xp
因此r.content具有双引号,如"正确"的json对象,而r.json()似乎已更改单引号中的所有双引号.
我应该关心它吗?我仍然可以很好地访问r.json()内容,只是想知道返回带单引号的对象的请求是否正常.
我可以在我的 travis 构建日志中看到 env 变量已正确导出:
Setting environment variables from .travis.yml
$ export K_API_KEY=[secure]
$ export K_PRIVATE_KEY=[secure]
$ export TOXENV=py27
Run Code Online (Sandbox Code Playgroud)
但是,在我使用基本 config.py 文件的测试中没有选择它们,该文件应该以这种方式获取 env 变量(API_KEY = os.environ['K_API_KEY']
),请参阅相关的 travis 日志:
$ source ~/virtualenv/python2.7/bin/activate
$ python --version
Python 2.7.9
$ pip --version
pip 6.0.7 from /home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages (python 2.7)
install
1.34s$ pip install -U tox
Collecting tox
Downloading tox-2.3.1-py2.py3-none-any.whl (40kB)
100% |################################| 40kB 1.2MB/s
Collecting virtualenv>=1.11.2 (from tox)
Downloading virtualenv-15.0.2-py2.py3-none-any.whl (1.8MB)
100% |################################| 1.8MB 262kB/s
Collecting py>=1.4.17 from https://pypi.python.org/packages/19/f2/4b71181a49a4673a12c8f5075b8744c5feb0ed9eba352dd22512d2c04d47/py-1.4.31-py2.py3-none-any.whl#md5=aa18874c9b4d1e5ab53e025008e43387 (from tox)
Downloading …
Run Code Online (Sandbox Code Playgroud) python ×6
pandas ×2
bokeh ×1
excel ×1
json ×1
matplotlib ×1
plot ×1
pycharm ×1
python-click ×1
sqlalchemy ×1
sqlite ×1
tox ×1
travis-ci ×1