Anonymous
Как преобразовать список вложенных диктовок в кадр данных Polars?
Сообщение
Anonymous » 31 окт 2025, 14:55
Я конвертирую список в полярный фрейм данных ниже.
Код: Выделить всё
import polars as pl
list_sample = [
{
'name': 'A',
'fame': 0,
'data': {
'date': ['2021-01-01', '2021-02-01', '2021-03-01'],
'credit_score': [800, 890, 895],
'spend': [1500, 25000, 2400],
'average_spend': 5000
}
},
{
'name': 'B',
'fame': 1,
'data': {
'date': ['2022-01-01', '2022-02-01', '2022-03-01'],
'credit_score': [2800, 390, 8900],
'spend': [15000, 5000, 400],
'average_spend': 3000
}
}
]
rows = []
for item in list_sample:
date = item['data']['date']
credit_score = item['data']['credit_score']
spend = item['data']['spend']
rows.extend(list(zip(date, credit_score, spend)))
df = pl.DataFrame(rows, orient="row", schema=["date", "credit_score", "spend"])
Код: Выделить всё
shape: (6, 3)
┌────────────┬──────────────┬───────┐
│ date ┆ credit_score ┆ spend │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞════════════╪══════════════╪═══════╡
│ 2021-01-01 ┆ 800 ┆ 1500 │
│ 2021-02-01 ┆ 890 ┆ 25000 │
│ 2021-03-01 ┆ 895 ┆ 2400 │
│ 2022-01-01 ┆ 2800 ┆ 15000 │
│ 2022-02-01 ┆ 390 ┆ 5000 │
│ 2022-03-01 ┆ 8900 ┆ 400 │
└────────────┴──────────────┴───────┘
Но в кадре данных все еще отсутствуют несколько столбцов, например имя, известность, средняя_скорость и т. д. Как их добавить? И есть ли более простой способ сделать это?
Подробнее здесь:
https://stackoverflow.com/questions/765 ... -dataframe
1761911753
Anonymous
Я конвертирую список в полярный фрейм данных ниже. [code]import polars as pl list_sample = [ { 'name': 'A', 'fame': 0, 'data': { 'date': ['2021-01-01', '2021-02-01', '2021-03-01'], 'credit_score': [800, 890, 895], 'spend': [1500, 25000, 2400], 'average_spend': 5000 } }, { 'name': 'B', 'fame': 1, 'data': { 'date': ['2022-01-01', '2022-02-01', '2022-03-01'], 'credit_score': [2800, 390, 8900], 'spend': [15000, 5000, 400], 'average_spend': 3000 } } ] rows = [] for item in list_sample: date = item['data']['date'] credit_score = item['data']['credit_score'] spend = item['data']['spend'] rows.extend(list(zip(date, credit_score, spend))) df = pl.DataFrame(rows, orient="row", schema=["date", "credit_score", "spend"]) [/code] [code]shape: (6, 3) ┌────────────┬──────────────┬───────┐ │ date ┆ credit_score ┆ spend │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ i64 │ ╞════════════╪══════════════╪═══════╡ │ 2021-01-01 ┆ 800 ┆ 1500 │ │ 2021-02-01 ┆ 890 ┆ 25000 │ │ 2021-03-01 ┆ 895 ┆ 2400 │ │ 2022-01-01 ┆ 2800 ┆ 15000 │ │ 2022-02-01 ┆ 390 ┆ 5000 │ │ 2022-03-01 ┆ 8900 ┆ 400 │ └────────────┴──────────────┴───────┘ [/code] Но в кадре данных все еще отсутствуют несколько столбцов, например имя, известность, средняя_скорость и т. д. Как их добавить? И есть ли более простой способ сделать это? Подробнее здесь: [url]https://stackoverflow.com/questions/76588674/how-to-convert-a-list-of-nested-dicts-to-a-polars-dataframe[/url]