这可能很简单,但我有以下数据:
在数据框1中:
index dat1
0 9
1 5
Run Code Online (Sandbox Code Playgroud)
在数据框2中:
index dat2
0 7
1 6
Run Code Online (Sandbox Code Playgroud)
我想要一个具有以下形式的数据框:
index dat1 dat2
0 9 7
1 5 6
Run Code Online (Sandbox Code Playgroud)
我尝试过使用这种append
方法,但我得到了一个交叉连接(即笛卡尔积).
这样做的正确方法是什么?
我确定这是一个简单的修复,但我想在运行单元测试时在PyCharm控制台中查看日志消息.我正在测试的模块有自己的记录器,通常我会设置一个根记录器来捕获某个级别的调试消息,并将其他日志传递给一个文件.但我无法弄清楚它如何与单元测试一起工作.
我正在使用unittest2模块,并使用PyCharm的自动测试发现(可能是基于鼻子,但我不知道).
我试过愚弄运行配置,但似乎没有一种简单的方法来做到这一点.
如果你们中的任何人在那里工作,那么PyCharm文档在这里也没有特别的帮助.
在编辑中:它似乎表明控制台捕获了关键级别的日志消息.我想知道是否有办法配置它来捕获调试级别的消息.
这篇文章(Pycharm单元测试交互式调试命令行不起作用)建议将-s
选项添加到构建配置,这不会产生所需的结果.
PyDev报告了不存在的导入错误.最初的症状是一个假的"未解决的导入"错误,它由以下组合修复:
现在错误是"导入的未验证变量" - 它似乎无法找到pymssql.connect.
这不是PYHTONPATH问题.我可以很好地访问模块,文件中的代码(涉嫌)错误运行正常 - 它有单元测试和生产代码调用它.
错误发生在PyDev中:我向PyDev项目添加了一个新模块,错误只发生在新模块中.我已经尝试了以上所有内容.
所以,我打算在其他地方发布这个代码来征求关于设计的一些评论,我在评论中被要求发布代码.(灵感来自:数据库连接包装器和Clint Miller对这个问题的回答:如何正确清理Python对象?).导入错误发生在第69行(self.connection = pymssql.connect ...).不知道这回答这个问题有什么好处,但......
import pymssql
from util.require_type import require_type
class Connections(object):
@require_type('host', str)
@require_type('user', str)
@require_type('password', str)
@require_type('database', str)
@require_type('as_dict', bool)
def __init__(self, host, user, password, database, as_dict=True):
self.host = host
self.user = user
self.password = password
self.db = database
self.as_dict = as_dict
@staticmethod
def server1(db):
return Connections('','','','')
@staticmethod
def server2(db):
pass
@staticmethod
def server3(db):
pass
class DBConnectionSource(object):
# Usage:
# with …
Run Code Online (Sandbox Code Playgroud) 我正在学习C#(C++中的背景),我对LINQ表达式有疑问.以下两个函数都做同样的事情(尽我所知).袋熊的类型是System.Data.Linq.Table<Wombat>
.
我很想知道
我的猜测是第二种效率更高,但除非袋熊桌上有数百万只袋熊,否则它并不重要.返回IQueryable并不重要,因为我们只返回一个袋熊.
提前致谢!
public static DBConnector.Connections.Wombat getWombat(String wombatID)
{
var db = getDBInstance();
return db.Wombats.FirstOrDefault(x => x.ID.ToString() == wombatID);
}
public static DBConnector.Connections.Wombat getWombat(String wombatID)
{
var db = getDBInstance();
var guid = new System.Guid(wombatID);
return db.Wombats.FirstOrDefault(x => x.ID == guid);
}
Run Code Online (Sandbox Code Playgroud) 我只是得到了一个可以防止的错误,如果它list
是Python中的保留字.(Dumbery就我而言,当然.)
那么为什么列表(或dict或float或任何类型)不是保留字?添加解释器错误似乎比尝试记住规则更容易.
(我也知道Eclipse/PyDev有一个设置会提醒你这个规则,这可能很有用.)
我想在我创建的每个新文件的顶部都有一些关于许可证,作者等的样板信息,但我找不到正确的方框来勾选.
基本上,我想创建一个新文件,并已经填充(在顶部)
'''
author: Me
license: something
copyright: something
'''
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
这可能是有史以来最愚蠢的问题,但我想知道是否有办法在函数(最好是装饰器)周围编写一个包装器,这样你就可以在异常情况下捕获局部变量的内部状态.在这个职能中提出 它会捕获当地人创建它们,腌制它们,然后在没有引发异常的情况下处理它们,或者如果发现任何异常则将它们写入文件.
这太过于幻想了,还是有人因这样的事情而被骗了?
我现在正在自己工作,但我正在寻找扩展我的操作的方法.
我想找一个简单的方法来版本化我的Python发行版,这样我就可以很容易地重新创建它.有没有工具可以做到这一点?或者我可以添加/usr/local/lib/python2.7/site-packages/
(或其他)svn回购?这并没有解决PATH
s 的问题,但我总是可以写一个脚本来改变路径.理想情况下,解决方案是在VM中构建我的Python env,然后将VM的副本移出.
别人怎么解决这个问题?
首先,我的设置:
我希望能够在我的笔记本电脑上本地运行脚本,对照我的开发数据库的快照,该数据库很快就存在于我的VM中.我也不想让PITA在Windows VM中重建我的Python安装.
所以问题是:如何从Mac端访问我的VM中运行的SQL Server实例?要访问生产数据,我使用的是基于FreeTDS的pymssql.
我一直在尝试设置一个脚本来定期运行python程序launchd
.python程序失败,因为它无法找到我的导入---我知道这是因为我在日志文件中捕获了错误.为了解决这个问题,我在那里创建~\.MacOSX\environment.plist
并复制了我PYTHONPATH
,注销并再次登录.这似乎不足以解决问题,我不知道还有什么可以尝试.
我正在运行OSX,10.8.3.
相关主题:
更新:
看来我可以运行以下命令:
launchctl setenv PYTHONPATH $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
并且脚本将成功执行.所以,修改我的问题:
~\.launchd.conf
和\etc\.launchd.conf
,也不存在了.launchd
找到它?为函数指定空字典或列表的正确方法是什么?
def func_a(l=list(), d=dict()):
pass
def func_b(l=[], d={}):
pass
Run Code Online (Sandbox Code Playgroud) 我现在可以在Pandas中做以下事情,但是我从FutureWarning那里得到一个严厉的手指摇摆:
grpd = df.groupby("rank").agg({
"mean": np.mean, "meian": np.median, "min": np.min, "max": np.max,
"25th percentile": lambda x: np.percentile(x, 25),
"75th percentile": lambda x: np.percentile(x, 75)
})
Run Code Online (Sandbox Code Playgroud)
以下引发错误,因为我有两个lambda函数:
percentile_25 = lambda x: np.percentile(x, 25)
percentile_75 = lambda x: np.percentile(x, 75)
df = diffs[["User Installs", "rank"]].dropna()
grpd = df.groupby("shopping_rank").agg([
np.mean, np.median, np.min, np.max,
percentile_25, percentile_75
])
Run Code Online (Sandbox Code Playgroud)
抛出:
SpecificationError: Function names must be unique, found multiple named <lambda>
Run Code Online (Sandbox Code Playgroud)
我似乎能够做到这一点的唯一方法(不忽略警告,我应该这样做)是一个精心设计的过程,如下所示
这里有什么我想念的吗?当然有更好的方法来做我想象的很常见的事情(使用两个不能直接从numpy导入的聚合).