Новый столбец панд для значений списка, найденных в предыдущем столбце - PullRequest
0 голосов
/ 08 мая 2019

У меня есть список.У меня есть столбец данных.Я хочу перебрать свой столбец данных со своим списком и создать новый столбец данных с соответствующими строками на основе значений списка, содержащихся в каждой строке моего столбца данных.Столбец dataframe - это text_excerpts, а список - токены, которые я хочу найти и отследить.Есть идеи?

Ответы [ 3 ]

1 голос
/ 10 мая 2019

Редактировать до исходного вопроса:

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

      index         text      words_contained
      0      1       I am A      ['I']
      1      2   My name is      ['My', 'name']
      2      3  Who are you      ['are', 'you']
1 голос
/ 09 мая 2019

@ acodejdatam Исходя из предположения, что вам нужно посчитать, сколько слов из списка появляется в столбце text_excerpt, вы можете попробовать следующий код.Если это не отвечает на ваш вопрос, приведите пример, чтобы мы могли помочь вам лучше с вашим вопросом.

 sample dataframe (df)
      index         text
  0      1       I am A
  1      2   My name is
  2      3  Who are you

  sample list (l)
  l = ['My', 'is', 'are']

  def find_match(series, l):
      words = series['text'].split()
      found_words = []
      for word in l:
          if word in words:
              found_words.append(word)
      return found_words

  df['words_contained']= df.apply(find_match, args=(l,), axis=1)

Ответ на приведенный выше пример кода изменит df на следующий

Out[16]: 
          index         text      count
          0      1       I am A      []
          1      2   My name is      [My, is]
          2      3  Who are you      [are]
0 голосов
/ 11 мая 2019

Еще одно обновление вопроса:

Что если вместо списка l = ['My', 'is', 'are'] у нас будет словарь, подобный mydict = {'My':-21, 'есть': - 12, 'есть': 1}.Как бы вы выполнили что-то похожее, как описано выше, но добавили бы значения словаря с «счетами», сложенными вместе на основе слов из каждой строки.Я бы предпочел добавить вес (значение из словаря) для каждого ключа (слово из словаря)

Я пытаюсь что-то вроде этого:

`def find_match(series, mydict):
words = series['text'].split()
found_words = []
for word in mydict.keys():
    if word in words:
        found_words.append(mydict.value().sum)
return found_words

df ['words_contained']= df.0 ') `

Большое спасибо за вашу помощь.Это было чудесно полезно.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...