Пакетное преобразование кадра данных pandas в protobuf

У меня есть фрейм данных с примерно 1,5 миллионами строк. Я хочу преобразовать это в protobuf.

Наивный метод

# generated with protoc
import my_proto

pb = my_proto.Table()
for _, row in big_table.iterrows():
    e = pb.rows.add()
    e.similarity = row["similarity"]
    e.id = row["id"]

Пропускная способность составляет около 100 строк в секунду. Общее время работы около пары часов.

Есть ли способ сделать это неинкрементным способом?


person user82395214    schedule 27.11.2020    source источник
comment
Каков контекст вашего вопроса? Я не могу сказать, ориентирован ли ваш вопрос на панд или на проток. Вы ищете одну операцию pandas для преобразования вашей таблицы?   -  person will.cass.wrig    schedule 03.12.2020
comment
@will.cass.wrig Я могу преобразовать фрейм данных во что-то еще, например, в словарь или список, эта часть не имеет большого значения. Важно выполнять пакетные операции при записи данных profobuf.   -  person user82395214    schedule 03.12.2020
comment
Извините, я не разбираюсь в буферах протокола, но похоже, что их можно реализовать асинхронно (ссылка). Я бы попробовал пометить ваш пост grpc, под этим тегом существует более крупное сообщество protobuf, чем protoc   -  person will.cass.wrig    schedule 03.12.2020