использовать StringIO ?
Это pandas? нужно сделать что-то вроде: df[df['a'].str.contains('str') & df['b'].str.contains('str2')]
а что с cursor.copy_to ? http://initd.org/psycopg/docs/cursor.html#cursor.copy_to
Если это генератор с миллиардом объектов?