Транспонировать фрейм данных с элементами спискаPython

Программы на Python
Ответить
Anonymous
 Транспонировать фрейм данных с элементами списка

Сообщение Anonymous »

У меня есть фрейм данных, например

Код: Выделить всё

┌─────┬────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
│ rul ┆ 647833 ┆ 64783 ┆ 64783 ┆ 64783 ┆ 64720 ┆ 64783 ┆ 64783 ┆ 64783 ┆ 64682 ┆ … ┆ 64681 ┆ 64681 ┆ 64681 ┆ 64719 ┆ 64681 ┆ 64681 ┆ 64682 ┆ 64682 ┆ 64682 ┆ 64682 │
│ e   ┆ ---    ┆ 0     ┆ 4     ┆ 1     ┆ 1     ┆ 2     ┆ 5     ┆ 6     ┆ 8     ┆   ┆ 7     ┆ 2     ┆ 3     ┆ 8     ┆ 5     ┆ 6     ┆ 1     ┆ 3     ┆ 2     ┆ 4     │
│ --- ┆ list[s ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   ┆ ---   │
│ str ┆ tr]    ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆   ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ ┆ list[ │
│     ┆        ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆   ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  ┆ str]  │
╞═════╪════════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╪═══════╡
│ cs_ ┆ ["Info ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Cri ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ … ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Cri ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf ┆ ["Inf │
│ rul ┆ ",     ┆ o",   ┆ o",   ┆ o",   ┆ tical ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆   ┆ o",   ┆ o",   ┆ o",   ┆ tical ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆ o",   ┆ o",   │
│ e_d ┆ "Ok"]  ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ ",    ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆   ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ ",    ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] ┆ "Ok"] │
│ ata ┆        ┆       ┆       ┆       ┆ "No   ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ "No   ┆       ┆       ┆       ┆       ┆       ┆       │
│ _ch ┆        ┆       ┆       ┆       ┆ data  ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ data  ┆       ┆       ┆       ┆       ┆       ┆       │
│ eck ┆        ┆       ┆       ┆       ┆ avail ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ avail ┆       ┆       ┆       ┆       ┆       ┆       │
│     ┆        ┆       ┆       ┆       ┆ iab…  ┆       ┆       ┆       ┆       ┆   ┆       ┆       ┆       ┆ iab…  ┆       ┆       ┆       ┆       ┆       ┆       │
└─────┴────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
Я просто пытаюсь выполнить транспонирование, чтобы правилами были столбцы, а текущими строками столбцов.
Поскольку транспонирование полярностей не работает с типами списков, я пытаюсь чтобы преобразовать списки в строки, разделенные запятыми, например

Код: Выделить всё

df = site_df.with_columns([pl.all().exclude("cs_rule_data_check").arr.join(",")])
но я продолжаю получать

Код: Выделить всё

polars.exceptions.SchemaError: invalid series dtype: expected `FixedSizeList`, got `list[str]`
Пример из ответа ниже:

Код: Выделить всё

df = pl.DataFrame({
"rule": "cs_rule_data_check",
"647833": [["Info","Ok"]],
"647201": [["Critical"]]
})

print(df)

#df = df.transpose(include_header=True, header_name="variable", column_names="rule")
df.unpivot(index="rule").pivot(on="rule", index="variable")
и транспонирование, и отмена поворота приводят к ошибке.

Код: Выделить всё

pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: InvalidOperation(ErrString("cannot cast List type (inner: 'String', to: 'String')"))
Я использую последние поляры
Как мне транспонировать свой фрейм данных?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»