我最近开始使用诗歌。我真的很喜欢简单的包管理,但我可以\xe2\x80\x99t似乎解决一件事:它应该使用的Python版本。我的机器上有 Python 3.9 和 3.7。3.7 在系统环境变量中的优先级较高 - 因此这可能是问题的原因。
\n但让\xe2\x80\x99s 回到例子。我的文件的一部分pyproject.toml如下所示:
[tool.poetry.dependencies]\npython = "3.9.2"\npandas = "^1.2.3"\nrequests = "^2.25.1"\nRun 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 窗口启动):
[tool.poetry.dependencies]\npython = "3.9.2"\npandas = "^1.2.3"\nrequests = "^2.25.1"\nRun Code Online (Sandbox Code Playgroud)\npyproject.toml python = "3.9.2"如果还不够,我如何明确告诉 Poetry 使用确切的 Python 版本?它是否选择第一个 Python 环境变量(在我的例子中是python37 )?或者我在这里遗漏了什么?
我正在将项目迁移到诗歌,但这里遇到了问题。这是一个简单的项目,不需要很多模块。我安装了诗歌,用于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中迭代数据类实例的属性?例如,我想在__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) 我有字典列表和整数列表
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)
显然这是错误的,因为输出是: …
我想输入提示 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) 我会尽量具体。我从 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 的行
希望这足够清楚,提前致谢
我正在参加泰坦尼克号 Kaggle 比赛并得到了简单的问题。如何过滤任何列中的 NA 和空值?我知道如何逐个变量地执行此操作,但想在过滤器语句中放置 2 个条件。到目前为止我得到了这个:
na_count = titanic.full %>%
filter_at(vars(-Survived), any_vars(is.na(.)) || . == "")
Run Code Online (Sandbox Code Playgroud)
所以我真正想要实现的是在条形图上可视化每列中有多少个 NA 或“”(空),这样稍后我就可以输入丢失的数据。
谢谢 :)
python ×5
filter ×2
list ×2
package ×2
r ×2
attributes ×1
class ×1
dplyr ×1
installation ×1
iteration ×1
module ×1
type-hinting ×1
typing ×1
version ×1