Может ли протокулярное маршальное сообщение перейти к уже выделенному байтовому массиву без копирования?

Более простое решение:

pd.DataFrame(df2.teams.tolist(), columns=['team1', 'team2'])

Выход,

  team1 team2
-------------
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG
7    SF   NYG

Если вы хотите разбить столбец с разделителями, а не на списки, вы также можете сделать следующее:

pd.DataFrame(df.teams.str.split('<delim>', expand=True).values,
             columns=['team1', 'team2'])
0
задан Cubey Mew 15 January 2019 в 17:08
поделиться

2 ответа

Непонятно, о чем вы спрашиваете. Обратите внимание, что функция proto Marshal () делает именно то, что вам нужно: она сериализует сообщение в байтовый фрагмент (что вы, вероятно, подразумеваете под байтовым массивом)

Посмотрите, поможет ли один из этих способов:

[ 110]

или

func(api *API) Send(m *proto.Message) error {
    buffer := api.packet[:length]
    buffer, err := proto.Marshal(m)
    if err != nil {
        return err
    }
    _, err := api.conn.Write(buffer)
    if err != nil {
        return err
    }
    return nil
}
0
ответ дан blobdon 15 January 2019 в 17:08
поделиться

Кажется, вы можете сделать Packet.buffer, чтобы стать proto.Buffer

type Packet struct {
    length uint32
    buffer proto.Buffer
}
...
var packet Packet
packet.length = YouLength
packet.buffer = proto.NewBuffer(make([]byte, YouLength))
//Then you can Marshall in Packet directly and it  may be reused.
err := packet.Marshal(message)
0
ответ дан Uvelichitel 15 January 2019 в 17:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: