Обычно я делаю общую фильтрацию по строкам следующим образом:
criterion = lambda row: row['countries'] not in countries
not_in = df[df.apply(criterion, axis=1)]
Это, кажется, ограничено только пределом памяти сценария.
А быстрый тест получил меня ключ 128 МБ без проблем:
ini_set('memory_limit', '1024M');
$key = str_repeat('x', 1024 * 1024 * 128);
$foo = array($key => $key);
echo strlen(key($foo)) . "<br>";
echo strlen($foo[$key]) . "<br>";
Нет никакого практического предела размеру строки в PHP. Согласно руководство :
Примечание: Это не проблема для строки для становления очень большим. PHP не налагает границы на размер строки; единственный предел является доступной памятью компьютера, на котором работает PHP.
безопасно предположить, что это относилось бы к использованию строк как ключи в массивах также, но в зависимости от того, как PHP обрабатывает свои поиски, можно заметить хит производительности, поскольку строки становятся больше.