Как найти совпадения текста в столбце pandas dataframe и посчитать его - PullRequest
0 голосов
/ 04 июля 2018

У меня есть датафрейм для панд:

Text                       like=>apple        not=>here                  
i like apple                    0                 0
i do not like pears             0                 0
one two three                   0                 0
something here                  0                 0
something not here              0                 0
vla bla bla                     0                 0

И мне нужно заполнить столбцы как:

Text                       like=>apple        not=>here                  
i like apple                    1                 0
i do not like pears             0                 0
one two three                   0                 0
something here                  0                 0
something not here              0                 1
vla bla bla                     0                 0

Я не знаю имен столбцов, кроме имени столбца Текст, мне нужно взять имя столбца и подсчитать совпадения текста в данных столбца Текст.

единственная идея, которая у меня есть, - это взять все столбцы, кроме столбца Текст в списке, итерацию через строку итераций по строке и столбцу по имени столбца и заполнить данные, но я предполагаю, что существует лучший способ сделать это.

1 Ответ

0 голосов
/ 04 июля 2018

Вместо использования iterrows вы можете добиться этого векторизации для каждого столбца.

In [41]: df.columns.to_series().drop('Text').values
Out[41]: array(['like=>apple', 'not=>here'], dtype=object)


In [42]: for ele in df.columns.to_series().drop('Text'):
    ...:     column_name = ele.replace('=>', ' ')
    ...:     df[ele] = df.Text.str.count(column_name)
    ...:     
    ...: 

In [43]: df
Out[43]: 
                  Text  like=>apple  not=>here
0         i like apple            1          0
1  i do not like pears            0          0
2        one two three            0          0
3       something here            0          0
4   something not here            0          1
5          vla bla bla            0          0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...