将Pandas数据框转换为Polars -- 最终维度的差异

4

我正在尝试将Pandas数据框转换为极坐标数据框。

我只是使用了函数result_polars = pl.from_pandas(result)。 转换进行得很顺利,但是当我检查两个数据框的形状时,我发现Polars数据框的大小只有原始Pandas数据框的一半。

我相信4172903059的长度几乎是Polars数据框允许的最大维度。

有人有建议吗?

这里是两个数据框形状的截图。

这里是一个最小工作示例。

import polars as pl
import pandas as pd
import numpy as np

df = pd.DataFrame(np.zeros((4292903069,1), dtype=np.uint8))
df_polars = pl.from_pandas(df)

使用这些维度,两个数据框的大小相同。如果我改为使用以下内容:

import polars as pl
import pandas as pd
import numpy as np

df = pd.DataFrame(np.zeros((4392903069,1), dtype=np.uint8))
df_polars = pl.from_pandas(df)

Polars dataframe 具有较小的维度(97935773)。


你能分享一些代码以及你到目前为止尝试过的其他方法吗? - 41 72 6c
1
尝试使用 polars-u64-idx - 请参见:https://github.com/pola-rs/polars#going-big - jqurious
1个回答

5

使用pip install polars安装的默认极化轮“只”允许处理2^32即约42亿行数据。

如果需要处理更多行数据,可以尝试安装pip install polars-u64-idx并卸载先前的安装。


是的,这绝对是原因!pip安装polars-u64-idx还需要Cargo和Rust。 - 081N
在Linux上不应该出现这个问题。我认为我们目前只将该二进制文件提供给了Linux。 - ritchie46
不幸的是,我使用的是Windows系统,在安装Rust后,它报错了:“无法获取ahash作为包py-polars v0.16.2的依赖项”。我无法让它运行。 - 081N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接