Программы на Python
Anonymous
Как удалить или удалить поле из структуры в Polars?
Сообщение
Anonymous » 01 ноя 2025, 14:10
Я хочу удалить одно поле из структуры. В настоящее время я настроил это так, но есть ли более простой способ добиться этого?
Код: Выделить всё
import polars as pl
import polars.selectors as cs
def remove_one_field(df: pl.DataFrame) -> pl.DataFrame:
meta_data_columns = (df.select('meta_data')
.unnest('meta_data')
.select(cs.all() - cs.by_name('system_data')).columns)
print(meta_data_columns)
return (df.unnest('meta_data')
.select(cs.all() - cs.by_name('system_data'))
.with_columns(meta_data=pl.struct(meta_data_columns))
.drop(meta_data_columns))
# Example usage
input_df = pl.DataFrame({
"id": [1, 2],
"meta_data": [{"system_data": "to_remove", "user_data": "keep"}, {"user_data": "keep_"}]
})
output_df = remove_one_field(input_df)
print(output_df)
Код: Выделить всё
['user_data']
shape: (2, 2)
┌─────┬───────────┐
│ id ┆ meta_data │
│ --- ┆ --- │
│ i64 ┆ struct[1] │
╞═════╪═══════════╡
│ 1 ┆ {"keep"} │
│ 2 ┆ {"keep_"} │
└─────┴───────────┘
Что-то вроде select для полей внутри структуры?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... -in-polars
1761995455
Anonymous
Я хочу удалить одно поле из структуры. В настоящее время я настроил это так, но есть ли более простой способ добиться этого? [code]import polars as pl import polars.selectors as cs def remove_one_field(df: pl.DataFrame) -> pl.DataFrame: meta_data_columns = (df.select('meta_data') .unnest('meta_data') .select(cs.all() - cs.by_name('system_data')).columns) print(meta_data_columns) return (df.unnest('meta_data') .select(cs.all() - cs.by_name('system_data')) .with_columns(meta_data=pl.struct(meta_data_columns)) .drop(meta_data_columns)) # Example usage input_df = pl.DataFrame({ "id": [1, 2], "meta_data": [{"system_data": "to_remove", "user_data": "keep"}, {"user_data": "keep_"}] }) output_df = remove_one_field(input_df) print(output_df) [/code] [code]['user_data'] shape: (2, 2) ┌─────┬───────────┐ │ id ┆ meta_data │ │ --- ┆ --- │ │ i64 ┆ struct[1] │ ╞═════╪═══════════╡ │ 1 ┆ {"keep"} │ │ 2 ┆ {"keep_"} │ └─────┴───────────┘ [/code] Что-то вроде select для полей внутри структуры? Подробнее здесь: [url]https://stackoverflow.com/questions/78716751/how-to-remove-or-drop-a-field-from-a-struct-in-polars[/url]