@@ -1287,7 +1287,7 @@ def _transcode(
12871287 ) -> None :
12881288 if map_symbols :
12891289 self ._instrument_map .insert_metadata (self .metadata )
1290- symbol_map = self ._instrument_map ._data
1290+ symbol_map = self ._instrument_map .build_symbol_map ()
12911291 else :
12921292 symbol_map = None
12931293
@@ -1299,7 +1299,7 @@ def _transcode(
12991299 pretty_ts = pretty_ts ,
13001300 has_metadata = True ,
13011301 map_symbols = map_symbols ,
1302- symbol_interval_map = symbol_map , # type: ignore [arg-type]
1302+ symbol_interval_map = symbol_map ,
13031303 schema = schema ,
13041304 )
13051305
@@ -1508,19 +1508,12 @@ def _format_hidden_fields(self, df: pd.DataFrame) -> None:
15081508 def _format_map_symbols (self , df : pd .DataFrame ) -> None :
15091509 # the first ordered field will be ts_recv or ts_event when appropriate
15101510 ts_name = self ._struct_type ._ordered_fields [0 ]
1511+ dates = df [ts_name ] if self ._pretty_ts else pd .to_datetime (df [ts_name ], utc = True ).dt .date
15111512
1512- if df .empty :
1513- df ["symbol" ] = []
1514- else :
1515- df ["symbol" ] = df .apply (
1516- lambda r : self ._instrument_map .resolve (
1517- r ["instrument_id" ],
1518- (
1519- r [ts_name ] if self ._pretty_ts else pd .to_datetime (r [ts_name ], utc = True )
1520- ).date (),
1521- ),
1522- axis = 1 ,
1523- )
1513+ df ["symbol" ] = self ._instrument_map .resolve_many (
1514+ df ["instrument_id" ].to_numpy (),
1515+ np .asarray (dates , dtype = "datetime64[D]" ),
1516+ )
15241517
15251518 def _format_timezone (self , df : pd .DataFrame ) -> None :
15261519 for field in self ._struct_type ._timestamp_fields :
0 commit comments