Могут ли поляры иметь логическое значение в операторе with_columns?Python

Программы на Python
Ответить
Anonymous
 Могут ли поляры иметь логическое значение в операторе with_columns?

Сообщение Anonymous »

Я использую поляры для хэширования некоторых столбцов в наборе данных. Один столбец содержит списки строк, а другой — строки столбцов. Мой подход состоит в том, чтобы преобразовать каждый столбец в строку типа, а затем хешировать столбцы. Проблема, с которой я столкнулся, связана с приведением типов.
Я использую метод with_columns следующим образом:

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

list_of_lists = [
['base', 'base.current base', 'base.current base.inventories - total', 'ABCD'],
['base', 'base.current base', 'base.current base.inventories - total', 'DEFG'],
['base', 'base.current base', 'base.current base.inventories - total', 'ABCD'],
['base', 'base.current base', 'base.current base.inventories - total', 'HIJK']
]

list_of_strings = ['(bobbyJoe460)',
'bobby, Joe (xx866e)',
'137642039575',
'mamamia']

pl_df_1 = pl.DataFrame({'lists': list_of_lists,'stris':list_of_strings}, strict=False)
pl_df_1.with_columns(pl.col(['lists','stris'])
.cast(pl.List(pl.Categorical))
.hash(seed=140)
.name.suffix('_hashed')
)
Обратите внимание, что приведение имеет вид pl.List(pl.Categorical). Если я опущу pl.List, приведение завершится с ошибкой
При включении pl.List код выдаст:

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

lists   stris   lists_hashed    stris_hashed
list[str]   str u64 u64
["base", "base.current base", … "ABCD"] "(bobbyJoe460)" 11845069150176100519    594396677107
["base", "base.current base", … "DEFG"] "bobby, Joe (xx866e)"   6761150988783483050 594396677107
["base", "base.current base", … "ABCD"] "137642039575"  11845069150176100519    594396677107
["base", "base.current base", … "HIJK"] "mamamia"   8290133271651710679 594396677107

Обратите внимание, что все столбцы строк имеют одинаковое значение хеш-функции. В идеале мне бы хотелось, чтобы логическое выражение в with_columns определяло тип столбца, и если это был список, используйте pl.List(pl.Categorical), а если это была строка, просто pl.Categorical. Возможно ли это?

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

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

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

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

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

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