rust 从结构加载 Dataframe

fnatzsnv  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(101)

我正在学习极地铁 rust 版本,我有一个问题:有没有一种方法可以通过使用结构体来创建 Dataframe (或惰性 Dataframe )?
我有一些财务数据从一个数据提供商发送给我一个JSON通过http请求。
我将这个json反序列化为一个结构体,并且我想用这个结构体创建一个polars Dataframe 。
或者,在rust版本中是否有类似于python polars.read_json的版本?

6ovsh4lw

6ovsh4lw1#

我假设在read_json之后你的 Dataframe 看起来像下面的例子,并试图相应地回答。

import polars as pl
exp = {

"a": ["a", "aa","aaa"],
"b": ["b", "bb","bbb"],
"c": ["c", "cc","ccc"]

}
df_exp=pl.DataFrame(exp).select([pl.struct(["a", "b"]).alias("first"),pl.struct(["b", "c"]).alias("second")])
df_exp

结果

shape: (3, 2)

 first        second
struct[2]    struct[2]
{"a","b"}    {"b","c"}
{"aa","bb"}  {"bb","cc"}
{"aaa","bbb"}{"bbb","ccc"}

如果你先对列中的一个元素进行切片,你可以看到这个结构体的字段名如下。

df_exp['first'][0]

结果

{'a': 'a', 'b': 'b'}

要取消嵌套 Dataframe ,您可以使用unnest函数创建与字段相关的列,如下所示。

df_exp.unnest('first')

结果

shape: (3, 3)
a      b    second
str   str   struct[2]
"a"   "b"   {"b","c"}
"aa"  "bb"  {"bb","cc"}
"aaa" "bbb" {"bbb","ccc"}

在这里,我附上一个笔记本链接,这是几乎相同的情况下,你正在寻找。https://www.kaggle.com/code/baladevdebasisjena/otto-polars-light-jsonl-to-paraquest-conversion

相关问题