Объединить списки из столбца df - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть фрейм данных, который выглядит следующим образом:

import pandas as pd
df = pd.DataFrame({'id': [1,2,3], 'tokens': [["anna","brings","work","life"], ["apples","bananas"], ["sun","trial","once"]]})

Я просто пытаюсь объединить все строки из списков в столбце в один список, чтобы результирующий список выглядел следующим образом:

result_list = ["anna","brings","work","life", "apples","bananas","sun","trial","once"]

Я попытался перебрать каждую строку, а затем каждый элемент в списке:

result_list = [item for sublist in df.tokens for item in sublist]

но я получаю список всех символов списков. Чего мне не хватает?

Ответы [ 4 ]

0 голосов
/ 09 ноября 2018
a = []
[a.extend(i) for i in df.tokens]
print(a)

Выход:

['anna', 'brings', 'work', 'life', 'apples', 'bananas', 'sun', 'trial', 'once']
0 голосов
/ 09 ноября 2018

Вы можете использовать понимание вложенного списка.

>>> [x for sub in df['tokens'] for x in sub]                                
['anna', 'brings', 'work', 'life', 'apples', 'bananas', 'sun', 'trial', 'once']

edit: что эквивалентно вашей попытке, которую я пропустил. То, что вы сделали, должно работать нормально.

0 голосов
/ 09 ноября 2018
your_list = []
for i in range (0, len(df)):
    for j in range (0, len(df['tokens'][i])):
       your_list.append(df['tokens'][i][j])
your_list
0 голосов
/ 09 ноября 2018

Использование chain.from_iterable :

import pandas as pd

from itertools import chain

df = pd.DataFrame(
    {'id': [1, 2, 3], 'tokens': [["anna", "brings", "work", "life"], ["apples", "bananas"], ["sun", "trial", "once"]]})

result = list(chain.from_iterable(df.tokens))
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...