我特别在谈论Pandas版本0.11,因为我正忙着用.loc或.iloc替换我对.ix的使用.我喜欢这样一个事实,即区分.loc和.iloc会告诉我是打算按标签还是整数位置进行索引.我看到任何一个人都会接受一个布尔数组,但我想保持他们的使用纯粹,以清楚地传达我的意图.
特别是我想知道base_url代码运行的Notebook Server.
在IPython笔记本版本2.x中我曾经做过以下事情:
config = get_ipython().config
print config['NotebookApp']['base_url']
Run Code Online (Sandbox Code Playgroud)
但是,这在IPython Notebook 3.x/Jupyter笔记本中不再有效.
编辑:关于我想要实现的更多细节.
我在同一主机上的不同Docker容器中运行各种IPython服务器,这些容器通过不同的base_urls 访问.我想使用quantopian/qgrid包在Notebook中显示Pandas DataFrames.最初qgrid没有处理自定义base_url前缀来提供Javascript依赖项的本地副本,但上面的代码允许我base_url在IPython 2中找到并将相关内容base_url注入Javascript模板.
我还想在Notebook中使用mpld3库,在浏览他们的文档时,我发现他们也提到在"IPython 2.0+中,如果添加了url前缀,local = True可能会失败(例如通过设置NotebookApp.base_url)"所以这似乎不是一个孤立的问题,一个好的解决方案是值得的.
鉴于@ matt的评论如下,并且更多地考虑内核与前端拆分,有意义的是,无法从内核访问NotebookApp配置.实际上生成的JS代码需要知道它base_url是什么,所以如果有人能指出我可以在Notebook JS API中访问它的地方,那应该解决它.
假设我pandas.DataFrame在列上有一个分层索引,如下所示:
import pandas as pd
columns = pd.MultiIndex.from_product([list('AB'), list('ab')])
df = pd.DataFrame(np.arange(8).reshape((2,4)), columns=columns)
print df
Run Code Online (Sandbox Code Playgroud)
出[1]:
A B
a b a b
0 0 1 2 3
1 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
我想展平列索引,使其如下所示:
Aa Ab Ba Bb
0 0 1 2 3
1 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
我试过了
def flatten(col):
col.name = ''.join(col.name)
return col
df.apply(f)
Run Code Online (Sandbox Code Playgroud)
但是这只是忽略了新列的修改名称.
在另一个问题(如何使用 PyMongo 将集合从一个数据库复制到同一服务器上的另一个数据库?)中,我弄清楚了如何将一个 MongoDB 集合复制到同一服务器上的另一个数据库。但是,这不会复制源集合上的索引,那么我如何复制这些索引呢?
假设我有一张类似的桌子reStructuredText:
+---------------+---------------------------+
| key | value |
+===============+===========================+
| short_word | value_1 |
+---------------+---------------------------+
| really_long_ | value 2 |
| word_I_want_ | |
| to_break | |
+---------------+---------------------------+
Run Code Online (Sandbox Code Playgroud)
有没有办法打破左下角单元格中的单词,即使用行继续转义字符或类似的字符,以便它仍然在输出中显示为单个单词?
特别是,我使用 Sphinx 来记录我的 Python 文档,并且由于尾随下划线字符,它将第一行解释为链接目标,从而生成错误。
虽然能够在字典的键之间进行设置操作是非常有用的,但我经常希望我可以对字典本身执行设置操作.
我找到了一些用于区分两个词典的方法,但我发现那些词语非常冗长,并且觉得必须有更多的pythonic答案.
我最近开始开发一个遗留应用程序,该应用程序的大部分业务逻辑都位于分布在两个或三个 SQL Server 数据库中的存储过程中。目前所有代码也是在实时环境中编辑的。
由于我是代码库的新手,我真的不想在实时环境中进行任何更改,因此我正在尝试建立一个开发环境。我们使用 Visual Studio 编写所有数据库对象的脚本,并在 Subversion 中跟踪这些对象。这样我就可以设置一个开发 SQL Server 实例来工作,但一个问题是代码充满了对服务器和数据库名称的硬编码引用,例如许多存储过程如下所示:
CREATE PROCEDURE server1.db1.dbo.proc1 AS
INSERT INTO db1.dbo.table1
EXEC server2.db2.dbo.proc2
END
Run Code Online (Sandbox Code Playgroud)
如何以安全的方式更改所有这些引用?到目前为止我想到了两个选择:
1) 有一个脚本运行全局搜索并替换我的 Subversion 工作副本上的服务器名称,然后针对我的测试数据库运行修改后的代码。
2) 通过编辑 \windows\system32\drivers\etc\hosts 文件在我的本地机器上设置 dns 别名,该文件将 server1 和 server2 重定向到数据库的开发实例。在生产服务器上,这些将指向生产数据库。
您认为以下哪一个设置更好?您是否认为我忽略了任何风险以及应该考虑哪些风险?
sql-server stored-procedures development-environment visual-studio
我正在单步执行SQL Server Management Studio 2008(SSMS)中的存储过程.代码创建了一些表变量以及我想要检查的临时#表.现在我可以在"Locals"窗口中看到其他局部变量,而在那里列出表变量时,我看不到它们的内容.我还想检查#temp表,但是我想要对它们运行的任何select语句都需要来自与我正在逐步执行的代码相同的会话.
这在SSMS 2008调试器中是否可行?
python ×4
pandas ×2
sql-server ×2
debugging ×1
dictionary ×1
ipython ×1
jupyter ×1
mongodb ×1
pymongo ×1