Вы хотели бы повернуть фрейм данных, чтобы разделить 'pig', 'dog' и 'cat' на отдельные столбцы.
В качестве альтернативы pivot вы можете использовать groupby
или использовать фильтры для извлечения пар (дата, положение) для каждого животного в df.Word.unique()
.
Это для разделения данных по животным. Второй шаг - использовать numpy.correrrelate(df[col1].values, df[col2].values)
для каждой комбинации (col1, col2) у животных.