有没有办法创建一个查询计划来从 S3 存储桶读取许多小 json 文件?
这类似于 Spark 从单个 S3 前缀(路径)读取许多小 json 文件或 csv 文件的方式:
spark.read.format("json").load("s3a://my-bucket/path/to/smallfiles/*.json")
Run Code Online (Sandbox Code Playgroud) 我有一个这样的字典列表:
[{"id": 1, "name": "Joe", "lastname": "Bloggs"}, {"id": 2, "name": "Bob", "lastname": "Wilson"}]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为极坐标数据框。我尝试过通过 pandas 进行操作,但如果可能的话,我想避免使用 pandas。
有什么想法吗?
有没有办法将 Polars DataFrame 保存到数据库中,例如 MS SQL?
\nConnectorX 库似乎没有这个选项。
\n我有一些计算的浮点列。我想显示四舍五入的一列的值,但round(pl.col("value"), 2)在 Polars 中无法正确旋转。我怎样才能做到呢?
我有多个polars数据帧,我想将它们附加到现有的 Parquet 文件中。
df.write_parquet("path.parquet")覆盖现有的镶木地板文件。我怎样才能追加?
我有一个包含三列的数据集。将检查 A 列中的字符串。如果字符串匹配foo或spam,则同一行中其他两列L和 的值G应更改为XX。为此我尝试了以下方法。
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\nRun Code Online (Sandbox Code Playgroud)\n … 将 DataFrame 写入 csv 文件时,我想附加到该文件,而不是覆盖它。
虽然 pandas DataFrame 具有可用模式.to_csv()参数的方法,因此允许将 DataFrame 附加到文件中,但 Polars DataFrame 写入方法似乎都没有该参数。
我有一个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 列具有以下类型:
如前所述:“ content”列存储大文本(1 到 20 页文本),我需要对其进行预处理,并且我猜存储方式不同。 …
在此示例中,在 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?
我不确定 …
我有以下数据框:
\ndf = 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})\nRun Code Online (Sandbox Code Playgroud)\nshape: (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-polars ×10
python ×6
dataframe ×3
append ×2
writefile ×2
amazon-s3 ×1
pandas ×1
parquet ×1
python-3.x ×1
rust-polars ×1