@@ -222,7 +222,8 @@ def query_stream(self, query: str, org=None, params: dict = None) -> Generator['
222222 async_req = False , _preload_content = False , _return_http_data_only = False )
223223 return self ._to_flux_record_stream (response , query_options = self ._get_query_options ())
224224
225- def query_data_frame (self , query : str , org = None , data_frame_index : List [str ] = None , params : dict = None ):
225+ def query_data_frame (self , query : str , org = None , data_frame_index : List [str ] = None , params : dict = None ,
226+ use_extension_dtypes : bool = False ):
226227 """
227228 Execute synchronous Flux query and return Pandas DataFrame.
228229
@@ -234,6 +235,11 @@ def query_data_frame(self, query: str, org=None, data_frame_index: List[str] = N
234235 If not specified the default value from ``InfluxDBClient.org`` is used.
235236 :param data_frame_index: the list of columns that are used as DataFrame index
236237 :param params: bind parameters
238+ :param use_extension_dtypes: set to ``True`` to use panda's extension data types.
239+ Useful for queries with ``pivot`` function.
240+ When data has missing values, column data type may change (to ``object`` or ``float64``).
241+ Nullable extension types (``Int64``, ``Float64``, ``boolean``) support ``panda.NA`` value.
242+ For more info, see https://pandas.pydata.org/docs/user_guide/missing_data.html.
237243 :return: :class:`~DataFrame` or :class:`~List[DataFrame]`
238244
239245 .. warning:: For the optimal processing of the query results use the ``pivot() function`` which align results as a table.
@@ -250,10 +256,12 @@ def query_data_frame(self, query: str, org=None, data_frame_index: List[str] = N
250256 - https://docs.influxdata.com/flux/latest/stdlib/universe/pivot/
251257 - https://docs.influxdata.com/flux/latest/stdlib/influxdata/influxdb/schema/fieldsascols/
252258 """ # noqa: E501
253- _generator = self .query_data_frame_stream (query , org = org , data_frame_index = data_frame_index , params = params )
259+ _generator = self .query_data_frame_stream (query , org = org , data_frame_index = data_frame_index , params = params ,
260+ use_extension_dtypes = use_extension_dtypes )
254261 return self ._to_data_frames (_generator )
255262
256- def query_data_frame_stream (self , query : str , org = None , data_frame_index : List [str ] = None , params : dict = None ):
263+ def query_data_frame_stream (self , query : str , org = None , data_frame_index : List [str ] = None , params : dict = None ,
264+ use_extension_dtypes : bool = False ):
257265 """
258266 Execute synchronous Flux query and return stream of Pandas DataFrame as a :class:`~Generator[DataFrame]`.
259267
@@ -265,6 +273,11 @@ def query_data_frame_stream(self, query: str, org=None, data_frame_index: List[s
265273 If not specified the default value from ``InfluxDBClient.org`` is used.
266274 :param data_frame_index: the list of columns that are used as DataFrame index
267275 :param params: bind parameters
276+ :param use_extension_dtypes: set to ``True`` to use panda's extension data types.
277+ Useful for queries with ``pivot`` function.
278+ When data has missing values, column data type may change (to ``object`` or ``float64``).
279+ Nullable extension types (``Int64``, ``Float64``, ``boolean``) support ``panda.NA`` value.
280+ For more info, see https://pandas.pydata.org/docs/user_guide/missing_data.html.
268281 :return: :class:`~Generator[DataFrame]`
269282
270283 .. warning:: For the optimal processing of the query results use the ``pivot() function`` which align results as a table.
@@ -289,7 +302,8 @@ def query_data_frame_stream(self, query: str, org=None, data_frame_index: List[s
289302
290303 return self ._to_data_frame_stream (data_frame_index = data_frame_index ,
291304 response = response ,
292- query_options = self ._get_query_options ())
305+ query_options = self ._get_query_options (),
306+ use_extension_dtypes = use_extension_dtypes )
293307
294308 def __del__ (self ):
295309 """Close QueryAPI."""
0 commit comments