найти положение строки столбца в другом столбце, используя Pandas - PullRequest
0 голосов
/ 11 октября 2018

У меня есть Dataframe с 2 столбцами

   col1     col2
1  cat      the cat
2  dog      a nice dog
3  horse    horse is here

Мне нужно найти положение каждой строки col1 в col2.

Решение должно быть:

   col1     col2          col3
1  cat      the cat        4
2  dog      a nice dog     7
3  horse    horse is here  0

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

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

numpy.core.defchararray.find

from numpy.core.defchararray import find

a = df.col2.values.astype(str)
b = df.col1.values.astype(str)
df.assign(col3=find(a, b))

    col1           col2  col3
1    cat        the cat     4
2    dog     a nice dog     7
3  horse  horse is here     0
0 голосов
/ 11 октября 2018

В pandas при работе со строками часто циклы или списки выполняются быстрее, чем встроенные строковые методы.В вашем случае он может быть довольно коротким:

df['col3'] = [i2.index(i1) for i1,i2 in zip(df.col1,df.col2)]

>>> df
    col1           col2  col3
1    cat        the cat     4
2    dog     a nice dog     7
3  horse  horse is here     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...