标签: python-polars

使用 Polars 从 S3 并行读取许多小 json 文件

我看过以下极地文档:
https://pola-rs.github.io/polars-book/user-guide/multiple_files/intro.html#reading-and-processing-in-parallel

有没有办法创建一个查询计划来从 S3 存储桶读取许多小 json 文件?

这类似于 Spark 从单个 S3 前缀(路径)读取许多小 json 文件或 csv 文件的方式:

spark.read.format("json").load("s3a://my-bucket/path/to/smallfiles/*.json")
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 dataframe python-polars

5
推荐指数
0
解决办法
847
查看次数

Python Polars:如何在不使用 pandas 的情况下将字典列表转换为极坐标数据框

我有一个这样的字典列表:

[{"id": 1, "name": "Joe", "lastname": "Bloggs"}, {"id": 2, "name": "Bob", "lastname": "Wilson"}]
Run Code Online (Sandbox Code Playgroud)

我想将其转换为极坐标数据框。我尝试过通过 pandas 进行操作,但如果可能的话,我想避免使用 pandas。

有什么想法吗?

python python-polars

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

Polars DataFrame 保存到 sql

有没有办法将 Polars DataFrame 保存到数据库中,例如 MS SQL?

\n

ConnectorX 库似乎没有这个选项。

\n

rust-polars python-polars

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

如何对 Polars 中的值进行四舍五入

我有一些计算的浮点列。我想显示四舍五入的一列的值,但round(pl.col("value"), 2)在 Polars 中无法正确旋转。我怎样才能做到呢?

dataframe python-polars

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

如何将数据从 Polars 附加到现有 Parquet

我有多个polars数据帧,我想将它们附加到现有的 Parquet 文件中。

df.write_parquet("path.parquet")覆盖现有的镶木地板文件。我怎样才能追加?

append writefile parquet python-polars

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

如何在极坐标中的多个条件下使用“when”、“then”和“otherwise”?

我有一个包含三列的数据集。将检查 A 列中的字符串。如果字符串匹配foospam,则同一行中其他两列L和 的值G应更改为XX。为此我尝试了以下方法。

\n
df = pl.DataFrame(\n    {\n        "A": ["foo", "ham", "spam", "egg",],\n        "L": ["A54", "A12", "B84", "C12"],\n        "G": ["X34", "C84", "G96", "L6",],\n    }\n)\nprint(df)\n\nshape: (4, 3)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 A    \xe2\x94\x86 L   \xe2\x94\x86 G   \xe2\x94\x82\n\xe2\x94\x82 ---  \xe2\x94\x86 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 str  \xe2\x94\x86 str \xe2\x94\x86 str \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 foo  \xe2\x94\x86 A54 \xe2\x94\x86 X34 \xe2\x94\x82\n\xe2\x94\x82 ham  \xe2\x94\x86 A12 \xe2\x94\x86 C84 \xe2\x94\x82\n\xe2\x94\x82 spam \xe2\x94\x86 B84 \xe2\x94\x86 G96 \xe2\x94\x82\n\xe2\x94\x82 egg  \xe2\x94\x86 C12 \xe2\x94\x86 L6  \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n …

python-polars

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

Polars 模块没有将 DataFrame 附加到输出文件的方法吗?

将 DataFrame 写入 csv 文件时,我想附加到该文件,而不是覆盖它。

虽然 pandas DataFrame 具有可用模式.to_csv()参数的方法,因此允许将 DataFrame 附加到文件中,但 Polars DataFrame 写入方法似乎都没有该参数。

python append writefile python-polars

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

北极熊与熊猫:体型和速度的差异

我有一个parquet文件(~1.5 GB),我想用polars. 生成的数据帧有 250k 行和 10 列。一栏里有大块的文本。

我刚刚开始使用极坐标,因为我听到了很多关于它的好消息。其中之一是它比 pandas 快得多。

这是我的问题:
数据帧的预处理相当慢,所以我开始与pandas. 我是否做错了什么,或者这个特定用例的极坐标只是速度较慢?如果是这样:有没有办法加快速度?

这是我的代码polars

import polars as pl

df = (pl.scan_parquet("folder/myfile.parquet")
      .filter((pl.col("type")=="Urteil") | (pl.col("type")=="Beschluss"))
      .collect()
     )
df.head()
Run Code Online (Sandbox Code Playgroud)

整个代码大约需要1 分钟,而仅过滤部分大约需要13 秒

我的代码在pandas

import pandas as pd 

df = (pd.read_parquet("folder/myfile.parquet")
    .query("type == 'Urteil' | type == 'Beschluss'") )
df.head()
Run Code Online (Sandbox Code Playgroud)

整个代码也大约需要1 分钟,而仅查询部分就需要<1 秒

数据框的 10 列具有以下类型:

  • i64
  • 斯特
  • 结构[7]
  • str(对于所有剩余的)

如前所述:“ content”列存储大文本(1 到 20 页文本),我需要对其进行预处理,并且我猜存储方式不同。 …

python dataframe pandas python-polars

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

根据特定列包含对列表中的对的行来过滤极坐标 DataFrame

在此示例中,在 columns 上["foo", "ham"],我希望删除第 1 行和第 4 行,因为它们与列表中的一对匹配

df = pl.DataFrame(
    {
        "foo": [1, 1, 2, 2, 3, 3, 4],
        "bar": [6, 7, 8, 9, 10, 11, 12],
        "ham": ["a", "b", "c", "d", "e", "f", "b"]
    }
)
pairs = [(1,"b"),(3,"e"),(4,"g")]
Run Code Online (Sandbox Code Playgroud)

以下内容对我有用,但我认为当数据框和对列表很大时这会出现问题。

for a, b in pairs:
    df = df.filter(~(pl.col('foo') == a) | ~(pl.col('ham') == b))
Run Code Online (Sandbox Code Playgroud)

我认为这是这个问题的 Pandas 实现Pandas: How to remove rows from a dataframe based on a tuples list made value in TWO columns?

我不确定 …

python python-3.x python-polars

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

在 Polars 中查找给定列的范围内的最大值?

我有以下数据框:

\n
df = pl.DataFrame({\n    "Column A": [2, 3, 1, 4, 1, 3, 3, 2, 1, 0],\n    "Column B": [\n        "Life", None, None, None, "Death", None, \n        "Life", None, None, "Death"\n    ]\n})\n
Run Code Online (Sandbox Code Playgroud)\n
shape: (10, 2)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 Column A \xe2\x94\x86 Column B \xe2\x94\x82\n\xe2\x94\x82 ---      \xe2\x94\x86 ---      \xe2\x94\x82\n\xe2\x94\x82 i64      \xe2\x94\x86 str      \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 2        \xe2\x94\x86 Life     \xe2\x94\x82\n\xe2\x94\x82 3        \xe2\x94\x86 null     \xe2\x94\x82\n\xe2\x94\x82 1        \xe2\x94\x86 null     \xe2\x94\x82\n\xe2\x94\x82 4        \xe2\x94\x86 null     \xe2\x94\x82\n\xe2\x94\x82 1        \xe2\x94\x86 Death    \xe2\x94\x82\n\xe2\x94\x82 3        \xe2\x94\x86 null     \xe2\x94\x82\n\xe2\x94\x82 3        \xe2\x94\x86 Life     \xe2\x94\x82\n\xe2\x94\x82 2        \xe2\x94\x86 …
Run Code Online (Sandbox Code Playgroud)

python python-polars

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