小编Ben*_* Du的帖子

类型注释中的 collections.Iterable 与 typing.Iterable 和检查 Iterable

我发现,在Python都collections.Iterabletyping.Iterable在类型注释,并检查对象是否是迭代的,即可以使用,无论是isinstance(obj, collections.Iterable)isinstance(obj, typing.Iterable)作品。我的问题是,它们之间有什么区别?在哪些情况下更喜欢哪一个?

python types annotations iterable isinstance

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

如何在 IntelliJ IdeaVim 中用括号括起一行?

IntelliJ IdeaVim 现在支持 vim 环绕功能。但是如何使用 IdeaVim 在 IntelliJ 中快速用括号括起来?我可以使用yss)yssb在 Vim 中使用环绕插件来做到这一点。目前我必须使用^转到当前行的开头,然后使用ys$)括号将其括起来。

vim intellij-idea surround ideavim

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

如何抑制代理链消息

注意:这个问题是关于 proxychains 而不是 proxychains-ng。

默认情况下,proxychains 输出一些如下所示的消息。怎样才能抑制这个消息? ProxyChains-3.1 (http://proxychains.sf.net)

proxy message suppress output

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

如何防止Python在当前工作目录中搜索模块?

我有一个导入datetime模块的 Python 脚本。它工作得很好,直到有一天我可以在一个包含名为 的 Python 脚本的目录中运行它datetime.py。当然,有几种方法可以解决这个问题。首先,我在不包含该脚本的目录中运行该脚本datetime.py。其次,我可以重命名Python脚本datetime.py。然而,这两种方法都不是完美的方法。假设一个人发布了一个 Python 脚本,他永远不知道用户将在哪里运行该 Python 脚本。另一个可能的修复方法是阻止 Python 在当前工作目录中搜索模块。我尝试删除空路径('' ) sys.path,但它在交互式 Python shell 中有效,但在 Python 脚本中无效。调用的 Python 脚本仍然在当前路径中搜索模块。我想知道是否有什么方法可以禁止Python在当前路径中搜索模块?

if __name__ == '__main__':
    if '' in sys.path:
        sys.path.remove('')
    ...
Run Code Online (Sandbox Code Playgroud)

请注意,即使我将以下代码放在脚本的开头,它也不起作用。

import sys
if '' in sys.path:
    sys.path.remove('')
Run Code Online (Sandbox Code Playgroud)

以下是 StackOverflow 上的一些相关问题。

从Python搜索模块路径中删除路径

当 io.py 位于同一目录时,pandas ImportError C 扩展

多数组的初始化引发了未报告的异常python

python shell module path python-import

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

如何在 Python Poetry 中指定对操作系统的依赖关系?

如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制?

python dependencies operating-system markers python-poetry

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

在 Python 中使用 Polars 读取/写入 Parquet 文件时可以指定架构吗?

在Python中使用Polars读取CSV文件时,我们可以使用参数dtypes来指定要使用的模式(对于某些列)。我想知道我们在读取或写入 Parquet 文件时可以做同样的事情吗?我试图指定dtypes参数,但它不起作用。

我有一些从 PySpark 生成的 Parquet 文件,并且想要将这些 Parquet 文件加载到 Rust 中。Rust 需要无符号整数,而 Spark/PySpark 没有无符号整数并将有符号整数输出到 Parquet 文件中。为了让事情变得更简单,我想在将 Parquet 文件加载到 Rust 之前转换它们的列类型。我知道有几种不同的方法可以实现这一点(无论是在 pandas 还是在 Polars 中),但我想知道是否有简单有效的方法可以使用 Polars 来实现此目的。

我在 Python 中使用极坐标转换列类型的代码如下。

import polars as pl

...
df["id0"] = df.id0.cast(pl.datatypes.UInt64)
Run Code Online (Sandbox Code Playgroud)

python schema dataframe rust python-polars

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

protobuf 和 arrow 的比较

两者都是语言中立和平台中立的数据交换库。我想知道它们有什么区别,哪个库适合哪种情况。

protocol-buffers data-exchange apache-arrow

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

如何在 Rust 中将函数应用于 Polars DataFrame 的多列

我想应用一个用户定义函数,该函数需要一些输入(对应于 Polars DataFrame 中的某些列)到 Rust 中的 Polars DataFrame 的某些列。我正在使用的模式如下。我想知道这是最佳实践吗?

fn my_filter_func(col1: &Series, col2: &Series, col2: &Series) -> ReturnType {
    let it = (0..n).map(|i| {
        let col1 = match col.get(i) {
            AnyValue::UInt64(val) => val,
            _ => panic!("Wrong type of col1!"),
        };
        // similar for col2 and col3
        // apply user-defined function to col1, col2 and col3
    }
    // convert it to a collection of the required type
}
Run Code Online (Sandbox Code Playgroud)

apply dataframe rust rust-polars

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