Добавить значение в столбце к началу другого столбца, который содержит список - PullRequest
1 голос
/ 14 апреля 2019

У меня есть Dataframe, который содержит следующие значения

    Keyword             Synonyms
0   fuzz                [hair, copper, pig, bull, cop, blur]
1   napkins             [table]
2   rationalizations    [systematization, rationalization]
3   grandmasters        [grandmaster]
4   rehearsing          [practice]

Чтобы создать раскрывающееся меню на следующем шаге, как добавить значение в столбце ключевых слов в начало каждого списка в столбце синонимов?

Мой код выглядит так:

df['Synonyms'] = pd.concat([df['Keyword'].append(df['Synonyms'])

Ответы [ 2 ]

3 голосов
/ 14 апреля 2019

Как насчет понимания списка? В python3 вы можете использовать расширенную итеративную распаковку для эффективного создания нового списка.

# df['Synonyms'] = [[x, *y] for x, y in df[['Keyword'], 'Synonyms']].values]
df['Synonyms'] = [[x, *y] for x, y in zip(df['Keyword'], df['Synonyms'])]
df

            Keyword                                           Synonyms
0              fuzz         [fuzz, hair, copper, pig, bull, cop, blur]
1           napkins                                   [napkins, table]
2  rationalizations  [rationalizations, systematization, rationaliz...
3      grandmasters                        [grandmasters, grandmaster]
4        rehearsing                             [rehearsing, practice]

Вот забавная альтернатива с map:

k = iter(df['Keyword'].tolist())
df['Synonyms'] = df['Synonyms'].map(lambda x: [next(k), *x])
df

            Keyword                                           Synonyms
0              fuzz         [fuzz, hair, copper, pig, bull, cop, blur]
1           napkins                                   [napkins, table]
2  rationalizations  [rationalizations, systematization, rationaliz...
3      grandmasters                        [grandmasters, grandmaster]
4        rehearsing                             [rehearsing, practice]
1 голос
/ 14 апреля 2019

Если это так

df['Keyword'].apply(lambda x : [x])+df['Synonyms']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...