草庐IT

python - 从 pandas df 更新数据库中的现有行

我有一个PostgreSQL数据库。Pandas有一个“to_sql”函数,可以将数据帧的记录写入数据库。但是我还没有找到任何关于在我完成数据框后如何使用pandas更新现有数据库行的文档。目前我可以使用pandasread_sql_table将数据库表读入数据框。然后,我会根据需要处理数据。但是,我无法弄清楚如何将该数据帧写回数据库以更新原始行。我不想覆盖整个表格。我只需要更新最初选择的行。 最佳答案 一种方法是利用sqlalchemy“表类”和session.merge(row)、session.commit():这是一个例子:

python - 应该 pytest 等人。进入 tests_require[] 或 extras_require{testing[]}?

我正在编写一个使用py.test进行测试的python程序,现在一个测试也依赖于numpy。我应该在setup.py的哪个位置添加这些依赖项?目前我的setup.py的相关部分如下所示:[...]'version':'0.0.1','install_requires':[],'tests_require':['pytest'],'cmdclass':{'test':PyTest},'extras_require':{'testing':['pytest'],},[...]有两次pytest感觉已经有些奇怪了,我不确定在哪里添加numpy。 最佳答案

python - 当 py.test 测试失败时,PyCharm 可以进入调试吗

使用py.test运行测试时,有一个--pdb选项可以在失败时输入pdb。在PyCharm中运行相同的测试时,是否有类似的方式进入调试器? 最佳答案 有一个py.test插件,pytest-pycharm,这将在测试发出未捕获的异常时停止PyCharm调试器。 关于python-当py.test测试失败时,PyCharm可以进入调试吗,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

python - 为什么盲目使用 df.copy() 来修复 SettingWithCopyWarning 是个坏主意

关于可怕的SettingWithCopyWarning有无数的问题我很清楚它是如何产生的。(注意我说好,不好)当一个数据帧df通过存储在is_copy中的属性“附加”到另一个数据帧时,就会发生这种情况。这是一个例子df=pd.DataFrame([[1]])d1=df[:]d1.is_copy我们可以将该属性设置为None或d1=d1.copy()我见过像@Jeff这样的开发人员,但我不记得还有谁,请警告这样做。引用SettingWithCopyWarning是有目的的。问题好的,那么有一个具体的例子来说明为什么通过将copy分配回原件来忽略警告是一个坏主意。我将定义“坏主意”以进行澄

python - Py.test 没有名为 * 的模块

我有这样的文件夹结构App--App--app.py--Docs--Tests--test_app.py在我的test_app.py文件中,我有一行来导入我的应用程序模块。当我在根文件夹上运行py.test时,我收到关于没有名为app的模块的错误。我应该如何配置? 最佳答案 使用Python3并在类似的项目布局中遇到相同的错误,我通过将__init__文件添加到我的tests模块来解决它。$touchtests/__init__.py我不擅长打包和导入,但我认为这有助于pytest确定目标App模块所在的位置。

python - 如何在 py.test 运行中多次重复每个测试?

我想按顺序运行每个选定的py.test项目任意次数。我没有看到任何标准的py.test机制来执行此操作。我尝试在pytest_collection_modifyitems()Hook中执行此操作。我修改了传入的项目列表,以多次指定每个项目。测试项的第一次执行按预期工作,但这似乎给我的代码带来了一些问题。此外,我希望每次运行都有一个唯一的测试项目对象,因为我在各种报告代码中使用id(项目)作为键。不幸的是,我找不到任何py.test代码来复制测试项目,copy.copy()不起作用,并且copy.deepcopy()得到一个异常(exception)。谁能建议一个多次执行测试的策略?

python - 将 pandas df 写入 csv 时出现 Unicode 编码错误

我清理了400个excel文件并使用pandas将它们读入python并将所有原始数据附加到一个大df中。然后当我尝试将其导出到csv时:df.to_csv("path",header=True,index=False)我收到此错误:UnicodeEncodeError:'ascii'codeccan'tencodecharacteru'\xc7'inposition20:ordinalnotinrange(128)有人可以提出解决此问题的方法及其含义吗?谢谢 最佳答案 您的DataFrame中有unicode值。文件存储字节,这意

python - Pandas 数据框创建新列并填充来自相同 df 的计算值

这是我的df的简化示例:ds=pd.DataFrame(np.abs(randn(3,4)),index=[1,2,3],columns=['A','B','C','D'])dsABCD11.0996790.0420430.0839030.41012820.2682050.7189331.4593740.75888730.6805660.5386550.0382361.169403我想逐行汇总列中的数据:ds['sum']=ds.sum(axis=1)dsABCDsum10.0953890.5569781.6468881.9592954.25855021.0761902.6682700

python - 长时间运行的 py.test 在第一次失败时停止

我正在使用pytest,并且测试执行应该一直运行到遇到异常为止。如果测试从未遇到异常,它应该继续运行其余时间或直到我向它发送SIGINT/SIGTERM。是否有一种编程方式告诉pytest在第一次失败时停止运行,而不是在命令行中执行此操作? 最佳答案 pytest-x#stopafterfirstfailurepytest--maxfail=2#stopaftertwofailures见pytestdocumentation. 关于python-长时间运行的py.test在第一次失败时停

python - django user_passes_test 装饰器

如何为基于类的View实现@user_passes_test(lambdau:u.is_superuser)装饰器?我之前将它用于基于函数的View,我有一个解决方法,但感觉不自然。这不应该被dispatch方法覆盖吗? 最佳答案 您在类的dispatch方法上使用@method_decorator:fromdjango.views.genericimportViewfromdjango.utils.decoratorsimportmethod_decoratorfromdjango.contrib.auth.decoratorsi