python Polars:Polars中是否有类似json_normalize的功能?

vu8f3i0k  于 2024-01-05  发布在  Python
关注(0)|答案(3)|浏览(164)

我浏览了Polars的整个文档,但找不到任何可以将嵌套的json转换为嵌套框架的东西。

  1. test = {
  2. "name": "Ravi",
  3. "Subjects": {
  4. "Maths": 92,
  5. "English": 94,
  6. "Hindi": 98
  7. }
  8. }

字符串
pandas中的json_normalize会通过将列命名为name,Subjects.Maths,Subjects.English和Subjects.Hindi来将其转换为一个嵌套结构。那么这在Polars中也有可能吗?我确实尝试了所有的函数,但它总是抛出错误,因为它不理解嵌套结构。

u91tlkcl

u91tlkcl1#

对于一个简单的类JSON字典,可以使用一个解析列表将值转换为值列表。
下面是一个例子:

  1. grades = {
  2. "name": "Ravi",
  3. "Subjects": {
  4. "Maths": 92,
  5. "English": 94,
  6. "Hindi": 98
  7. }}
  8. grades_with_list = {key:[value] for key, value in grades.items()}
  9. pl.DataFrame(grades_with_list)
  10. # Output
  11. shape: (1, 2)
  12. ┌──────┬────────────┐
  13. name Subjects
  14. --- ---
  15. str struct[3]
  16. ╞══════╪════════════╡
  17. Ravi {92,94,98}
  18. └──────┴────────────┘
  19. # You can also un-nest the Subjets column, to get a separate column for each subject.
  20. pl.DataFrame(grades_with_list).unnest('Subjects')
  21. # Output
  22. shape: (1, 4)
  23. ┌──────┬───────┬─────────┬───────┐
  24. name Maths English Hindi
  25. --- --- --- ---
  26. str i64 i64 i64
  27. ╞══════╪═══════╪═════════╪═══════╡
  28. Ravi 92 94 98
  29. └──────┴───────┴─────────┴───────┘

字符串

展开查看全部
oipij1gg

oipij1gg2#

没有,AFAIK建议使用pandas函数,然后将pandas数据框加载到polars中。

vsnjm48y

vsnjm48y3#

Polars没有这样的功能。但它基本上是一个实用的东西,而不是一个与框架相关的概念。因此,正如其他回复所提到的,最好使用其他解决方案。
flatdict很适合这个问题

  1. In [376]: test = {
  2. ...: "name": "Ravi",
  3. ...: "Subjects": {
  4. ...: "Maths": 92,
  5. ...: "English": 94,
  6. ...: "Hindi": 98
  7. ...: }
  8. ...: }
  9. In [377]: pl.DataFrame(dict(flatdict.FlatDict(test, delimiter=".")))
  10. Out[377]:
  11. shape: (1, 4)
  12. ┌──────┬────────────────┬──────────────────┬────────────────┐
  13. name Subjects.Maths Subjects.English Subjects.Hindi
  14. --- --- --- ---
  15. str i64 i64 i64
  16. ╞══════╪════════════════╪══════════════════╪════════════════╡
  17. Ravi 92 94 98
  18. └──────┴────────────────┴──────────────────┴────────────────┘

字符串

展开查看全部

相关问题