我正在学习极地铁 rust 版本,我有一个问题:有没有一种方法可以通过使用结构体来创建 Dataframe (或惰性 Dataframe )?我有一些财务数据从一个数据提供商发送给我一个JSON通过http请求。我将这个json反序列化为一个结构体,并且我想用这个结构体创建一个polars Dataframe 。或者,在rust版本中是否有类似于python polars.read_json的版本?
6ovsh4lw1#
我假设在read_json之后你的 Dataframe 看起来像下面的例子,并试图相应地回答。
read_json
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函数创建与字段相关的列,如下所示。
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
1条答案
按热度按时间6ovsh4lw1#
我假设在
read_json
之后你的 Dataframe 看起来像下面的例子,并试图相应地回答。结果
如果你先对列中的一个元素进行切片,你可以看到这个结构体的字段名如下。
结果
要取消嵌套 Dataframe ,您可以使用
unnest
函数创建与字段相关的列,如下所示。结果
在这里,我附上一个笔记本链接,这是几乎相同的情况下,你正在寻找。https://www.kaggle.com/code/baladevdebasisjena/otto-polars-light-jsonl-to-paraquest-conversion