我有带有setup.py的Python包。它具有在install_requires中声明的常规依赖项和在tests_require中声明的开发依赖项,例如flake8.我认为pipinstall-e.或运行pythonsetup.pytest也会安装我的开发依赖项,它们将可用。然而,显然它们不是,我很难正确设置我的TravisCI构建。install:-"pipinstall-e."script:-"pythonsetup.pytest"-"flake8"如上配置的构建将失败,因为flake8将不会被发现为有效命令。我还尝试从pythonsetup.pytest命令内部调用flake8
我正在使用pythonpytest来运行我的单元测试。我的项目文件夹是:Main-包含数据文件:A.txtMain\Tests-我运行pytest的文件夹Main\Tests\A_test-包含测试文件的文件夹A_test文件夹中的测试使用文件A.txt(位于Main文件夹中)。我的问题是,当我运行py.test时,测试失败,因为它找不到A.txt。我发现是因为pytest在运行测试时使用了路径Main\Test,而不是将路径改为Main\Tests\A_test(我是在测试文件中打开A.txt时使用相对路径)我的问题:有没有办法让pytest将目录更改为它为每个测试执行的测试文件夹?
我试图将一个系列添加到一个空的DataFrame中,但找不到答案在文档或其他问题中。因为您可以按行附加两个DataFrame或者按列看来系列中必须缺少一个“轴标记”。能谁能解释为什么这不起作用?importPandasaspddf1=pd.DataFrame()s1=pd.Series(['a',5,6])df1=pd.concat([df1,s1],axis=1)#gorunsomeprocessreturns2,s3,sn...s2=pd.Series(['b',8,9])df1=pd.concat([df1,s2],axis=1)s3=pd.Series(['c',10,11])
当您编写一些自给自足的脚本时,使用if__name__=='__main__'作为编写测试的地方是不是一个坏主意? 最佳答案 这实际上取决于您的代码和脚本的目的。对于大型和复杂的项目,您肯定必须将所有测试放在一个单独的地方。但是在处理一些小的事情时,将测试与代码一起进行可能是一个很好的解决方案-这是doctest的主要思想(这是一个很棒的Python模块,允许您在文档字符串中编写测试)。在这种情况下,您的if__name__=='__main__'将如下所示:if__name__=="__main__":importdoctestd
我想从数据框的底部删除m行。它是整数索引(有孔)。如何才能做到这一点?Pandas==0.10.1python==2.7.3 最佳答案 使用切片选择你想要的部分:df[:-m]如果你想删除一些中间行,你可以使用drop:df.drop(df.index[3:5]) 关于python-PANDAS从df删除一系列行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15703283/
我不知道如何更改这些x标签的格式。理想情况下,我想对它们调用strftime('%Y-%m-%d')。我试过set_major_formatter之类的东西,但没有成功。importpandasaspdimportnumpyasnpdate_range=pd.date_range('2014-01-01','2015-01-01',freq='MS')df=pd.DataFrame({'foo':np.random.randint(0,10,len(date_range))},index=date_range)ax=df.plot(kind='bar') 最
我使用setuptools'tests_require'来指定测试我的包所需的依赖项。tests_require-http://pythonhosted.org/distribute/setuptools.html#new-and-changed-setup-keywords我已经开始使用wheelpackaginghttp://wheel.readthedocs.org/en/latest/并为我当前的包及其所有依赖项构建一个wheels目录。pipwheel--wheel-dir=/tmp/wheelhouse.不过,我还想为任何包tests_require中列出的所有包构建轮子。
py.test的--verbose选项需要显示断言失败的完整差异,但这也会在执行期间显示每个测试的全名(很吵)。我希望在断言失败时显示完整的差异,但我只希望在测试运行时显示单个.。有办法做到这一点吗? 最佳答案 不幸的是,似乎没有配置或命令行标志,因为它是硬编码的deepinsidepytest:当你定义--verbose时,你会得到整个包。但是,我设法想出了这个hackishhack。将以下函数放入您的conftest.py:defpytest_configure(config):terminal=config.pluginman
我试图在pandasdf中返回count的unique值。它是每个行的累积计数。我的目标是合并一个函数来确定当前在任何时间点出现的值的数量。importpandasaspddf=pd.DataFrame({'A':['8:06:00','11:00:00','11:30:00','12:00:00','13:00:00','13:30:00','14:00:00','17:00:00'],'B':['ABC','ABC','DEF','XYZ','ABC','LMN','DEF','ABC'],'C':[1,2,1,1,3,1,2,4],})ABC08:06:00ABC1111:00:
自己试试看:importpandasaspds=pd.Series(xrange(5000000))%timeits.loc[[0]]#Youneedpandas0.15.1ornewerforittobethatslow1loops,bestof3:445msperloop更新:大概是2014年8月左右在0.15.1中引入的alegitimatebuginpandas。解决方法:使用旧版本的pandas等待新版本发布;得到一个尖端的开发者。来自github的版本;在您发布的pandas中手动进行一行修改;暂时使用.ix而不是.loc。我有一个包含480万行的DataFrame,使用.