Самый быстрый способ получить черепицу из колонны PandasPython

Программы на Python
Ответить
Anonymous
 Самый быстрый способ получить черепицу из колонны Pandas

Сообщение Anonymous »

Мне нужен самый быстрый способ выделения строк из фрейма данных и последующего создания основного списка.

Для следующего фрейма данных :

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

import pandas as pd
d=['Hello', 'Helloworld']
f=pd.DataFrame({'strings':d})
f
strings
0   Hello
1   Helloworld
Я хотел бы сгенерировать список строк (длиной 3) следующим образом:
(Включены все возможные трехбуквенные комбинации.)

р>

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

[['Hel', 'ell', 'llo'],['Hel', 'ell', 'llo', 'low', 'owo', 'wor', 'orl', 'rld']]
... и основной список всех уникальных значений, например:

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

['wor', 'Hel', 'ell', 'owo', 'llo', 'rld', 'orl', 'low']
Я могу сделать это следующим образом, но подозреваю, что есть гораздо более быстрый способ:

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

#Shingle into strings of exactly 3
def shingle(word):
r = [word[i:i + 3] for i in range(len(word) - 3 + 1)]
return [''.join(t) for t in r]
#Shingle (i.e. "hello" -> "hel","ell",'llo')
r=[shingle(w) for w in f['strings']]
#Get all elements into one list:
import itertools
colsunq=list(itertools.chain.from_iterable(r))
#Remove duplicates:
colsunq=list(set(colsunq))
colsunq

['wor', 'Hel', 'ell', 'owo', 'llo', 'rld', 'orl', 'low']
Заранее спасибо!

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

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

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

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

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

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