Уж не знаю, может быть тогда и не грузить всю таблицу целиком, а сразу изначально искать нужные строки по критерию поиска силами пандаса, а потом выдавать результат? Вообщем-то вся таблица то и не нужна как бы.Ну вообще то я думал ты так и делаешь. Какой тебе смысл во всей таблице в выводе. Вывод это подсет фрейма.
for i in range(len(name)):
counter = 0
for c in range(len(name[i])):
Смотри если ориентироваться на твою картинку то у тебя там в качестве объектов python списки. Сам тип столбца object что означает (python обject). Ты можешь написать функцию которая на вход получает список если список пуст возвращает например NaN если список не пуст, ну берет например последний элемент (последний эмоджи). Затем применить создать новый столбец df['last_emoji'] = df['emoji'].apply(your_function), где your_function простенькая python функция как я выше описал. Что то типо такого можно, потом выбрать все строки которые не содержать пропущенных значений и все. Много способов.