Я работаю в Polars, и у меня есть набор данных, в котором один столбец представляет собой списки строк. Чтобы увидеть, на что это похоже:
import pandas as pd
list_of_lists = [['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
, ['base', 'base.current base', 'base.current base.inventories - total','ABCD']
, ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
, ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']]
pd_df = pd.DataFrame({'lol': list_of_lists})
Даёт:
lol
0 ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
1 ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
2 ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
3 ['base', 'base.current base', 'base.current base.inventories - total', 'ABCD']
Я хочу хешировать каждый список. Я думал преобразовать каждый список в строку, а затем хешировать ее. Я могу сделать это с помощью Pandas
pd_df = pd.DataFrame({'lol': list_of_lists}).astype({'lol':str})
pl_df_1 = pl.DataFrame(pd_df)
pl_df_1.with_columns(pl.col('lol')
.hash(seed=140)
.name.suffix('_hashed')
)
Даёт:
lol lol_hashed
str u64
"['base', 'base.current base', … 14283628883798345624
"['base', 'base.current base', … 14283628883798345624
"['base', 'base.current base', … 14283628883798345624
"['base', 'base.current base', … 14283628883798345624
Но если я попытаюсь сделать то же самое в Polars, я получу ошибку:
pl_df_2 = pl.DataFrame({'lol': list_of_lists})
pl_df_2.with_columns(pl.col('lol') #
Подробнее: https://stackoverflow.com/questions/794 ... -to-string