小编M.w*_*wol的帖子

我如何指定诗歌应创建 venv 的 Python 版本?

我最近开始使用诗歌。我真的很喜欢简单的包管理,但我可以\xe2\x80\x99t似乎解决一件事:它应该使用的Python版本。我的机器上有 Python 3.9 和 3.7。3.7 在系统环境变量中的优先级较高 - 因此这可能是问题的原因。

\n

但让\xe2\x80\x99s 回到例子。我的文件的一部分pyproject.toml如下所示:

\n
[tool.poetry.dependencies]\npython = "3.9.2"\npandas = "^1.2.3"\nrequests = "^2.25.1"\n
Run Code Online (Sandbox Code Playgroud)\n

我手动将Python更改为3.9.2,用于poetry add添加Pandas和请求,然后运行poetry install。我已virtualenvs.in-project设置为 true,因此我的虚拟环境已创建,项目目录中没有任何错误。但是,当它被激活时,我可以看到它正在使用 Python\xc2\xa03.7.9 (在 Windows 上,从 PowerShell 窗口启动):

\n
[tool.poetry.dependencies]\npython = "3.9.2"\npandas = "^1.2.3"\nrequests = "^2.25.1"\n
Run Code Online (Sandbox Code Playgroud)\n

pyproject.toml python = "3.9.2"如果还不够,我如何明确告诉 Poetry 使用确切的 Python 版本?它是否选择第一个 Python 环境变量(在我的例子中是python37 )?或者我在这里遗漏了什么?

\n

python version package-managers package python-poetry

27
推荐指数
1
解决办法
4万
查看次数

如何使用诗歌安装 python 包?

我正在将项目迁移到诗歌,但这里遇到了问题。这是一个简单的项目,不需要很多模块。我安装了诗歌,用于poetry add添加一些所需的包然后运行poetry install,但它似乎没有在我的 venv 中安装 pandas。我的pyproject.toml看起来像这样:

[tool.poetry]
name = "***"
version = "0.1.0"
description = ""
authors = ["***"]

[tool.poetry.dependencies]
python = "^3.9"
pandas = "^1.2.2"
numpy = "^1.20.1"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)

然后我运行:

PS C:\****> poetry install 
Installing dependencies from lock file

No dependencies to install or update
Run Code Online (Sandbox Code Playgroud)

最后,当我想运行使用 pandas 的 main.py 脚本时,它说没有名为 pandas 的模块:

PS C:\***> python main.py
Traceback (most recent call last):
  File "C:\***\main.py", line 1, in …
Run Code Online (Sandbox Code Playgroud)

python installation module package python-poetry

16
推荐指数
2
解决办法
5万
查看次数

如何在Python中迭代数据类的属性?

是否可以在Python中迭代数据类实例的属性?例如,我想在__post_init__double 整数属性中:

from dataclasses import dataclass, fields
@dataclass
class Foo:
    a: int
    b: int

    def __post_init__(self):
        self.double_attributes()

    def double_attributes(self):
        for field in fields(Foo):
            field = field*2

x = {
    'a': 1,
    'b': 2
}
y = Foo(**x)

>>> TypeError: unsupported operand type(s) for *: 'Field' and 'int'
Run Code Online (Sandbox Code Playgroud)

如何访问类实例的值并将其设置为如下所示但在循环中的其他值?

@dataclass
class Foo:
    a: int
    b: int

    def __post_init__(self):
        self.double_a()
        self.double_b()

    def double_a(self):
        self.a = self.a*2
    def double_b(self):
        self.b = self.b*2
Run Code Online (Sandbox Code Playgroud)

python iteration attributes class python-dataclasses

10
推荐指数
1
解决办法
1万
查看次数

Python 字典理解将字典和整数的元组列表转换为字典列表

我有字典列表和整数列表

x = [
    {
        "name": "tom",
        "job": "judge"
    },
    {
        "name":"bob",
        "job": "policeman"
    }
]
y = [1000, 2200]
Run Code Online (Sandbox Code Playgroud)

我想压缩它们并将y元素添加到字典中,因为"payroll": y_element 所需的输出将是:

[
    {
        "name": "tom",
        "job": "judge",
        "payroll": 1000
    },
    {
        "name":"bob",
        "job": "policeman",
        "payroll": 2200
    }
]
Run Code Online (Sandbox Code Playgroud)

我实际上是通过以下方式实现的:

z = zip(x, y)
for i in z:
    i[0]["payroll"] = i[1]

z = [i[0] for i in z]
Run Code Online (Sandbox Code Playgroud)

但我想知道是否可以在列表理解中的字典理解中完成。这是我到目前为止所尝试的:

z = [{k: v, "value": o} for d, o in z for k, v in d.items()]
Run Code Online (Sandbox Code Playgroud)

显然这是错误的,因为输出是: …

python list dictionary-comprehension

4
推荐指数
1
解决办法
192
查看次数

如何在Python中以常量形式但多种类型输入hint Dict?

我想输入提示 some_func 函数的返回对象,它始终是相同的格式。它是否正确?

from typing import List, Dict


def some_func() -> List[Dict[str, int, str, List[CustomObject]]]:
    my_list = [
               {"ID": 1, "cargo": [CustomObject(), CustomObject()]},
               {"ID": 2, "cargo": [CustomObject(), CustomObject()]},
               {"ID": 2, "cargo": [CustomObject(), CustomObject()]}
               ]
    return my_list
Run Code Online (Sandbox Code Playgroud)

python list typing type-hinting

3
推荐指数
1
解决办法
3427
查看次数

是否有一个函数来过滤包含字符串的行,但在 R 中包含给定字符串的选定列名称上?

我会尽量具体。我从 Web 应用程序中获取了大量数据集。我下载的每个数据集的列数可能会有所不同。我想过滤我的数据以查找异常值。所以我准备了一个清单:

outl <- c("God","Devil","Priest")
Run Code Online (Sandbox Code Playgroud)

现在让我们假设这是我的 df:

ID <- c(1,2,3,4)
Actor1<- c("Driver","","","")
Actor2<- c("President","Zombie","","")
Actor3<- c("CEO","Devil","","")
Actor4<-c("Priest","","Killer","Mayor")
Leng<- c(12,42,42,22)
Genre<-c("horror","criminal","drama","comedy")
df_ex <-data.frame(ID, Actor1, Actor2, Actor3, Actor4, Leng, Genre)
Run Code Online (Sandbox Code Playgroud)

我想过滤包含名称为“Actor”的任何列中异常值名称的行 ID(可能有 100 个,这就是为什么我不能使用 OR 运算符执行此操作的原因),例如:

df_ex %>%
  filter(*anycolumn that contains string "Actor"* %in% outl)
Run Code Online (Sandbox Code Playgroud)

我希望得到 ID 为 1 和 2 的行

希望这足够清楚,提前致谢

r filter multiple-columns conditional-statements

1
推荐指数
1
解决办法
59
查看次数

过滤与 R dplyr 中多个条件之一匹配的任何变量

我正在参加泰坦尼克号 Kaggle 比赛并得到了简单的问题。如何过滤任何列中的 NA 和空值?我知道如何逐个变量地执行此操作,但想在过滤器语句中放置 2 个条件。到目前为止我得到了这个:

na_count = titanic.full %>%
  filter_at(vars(-Survived), any_vars(is.na(.)) || . == "")
Run Code Online (Sandbox Code Playgroud)

所以我真正想要实现的是在条形图上可视化每列中有多少个 NA 或“”(空),这样稍后我就可以输入丢失的数据。

谢谢 :)

r filter dplyr

-1
推荐指数
1
解决办法
833
查看次数