Skip to content

Commit 3e38699

Browse files
authored
feat: Add query_data_frame_stream method (influxdata#121)
1 parent 1bb088f commit 3e38699

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### Features
44
1. [#112](https://github.com/influxdata/influxdb-client-python/pull/113): Support timestamp with different timezone in _convert_timestamp
55
1. [#120](https://github.com/influxdata/influxdb-client-python/pull/120): ciso8601 is an optional dependency and has to be installed separably
6+
1. [#121](https://github.com/influxdata/influxdb-client-python/pull/121): Added query_data_frame_stream method
67

78
### Bug Fixes
89
1. [#117](https://github.com/influxdata/influxdb-client-python/pull/117): Fixed appending default tags for single Point

influxdb_client/client/query_api.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,27 @@ def query_data_frame(self, query: str, org=None, data_frame_index: List[str] = N
105105

106106
from ..extras import pd
107107

108+
_generator = self.query_data_frame_stream(query, org=org, data_frame_index=data_frame_index)
109+
_dataFrames = list(_generator)
110+
111+
if len(_dataFrames) == 0:
112+
return pd.DataFrame(columns=[], index=None)
113+
elif len(_dataFrames) == 1:
114+
return _dataFrames[0]
115+
else:
116+
return _dataFrames
117+
118+
def query_data_frame_stream(self, query: str, org=None, data_frame_index: List[str] = None):
119+
"""
120+
Synchronously executes the Flux query and return stream of Pandas DataFrame as a Generator['pd.DataFrame'].
121+
Note that if a query returns more then one table than the client generates a DataFrame for each of them.
122+
123+
:param query: the Flux query
124+
:param org: organization name (optional if already specified in InfluxDBClient)
125+
:param data_frame_index: the list of columns that are used as DataFrame index
126+
:return:
127+
"""
128+
108129
if org is None:
109130
org = self._influxdb_client.org
110131

@@ -113,14 +134,7 @@ def query_data_frame(self, query: str, org=None, data_frame_index: List[str] = N
113134

114135
_parser = FluxCsvParser(response=response, serialization_mode=FluxSerializationMode.dataFrame,
115136
data_frame_index=data_frame_index)
116-
_dataFrames = list(_parser.generator())
117-
118-
if len(_dataFrames) == 0:
119-
return pd.DataFrame(columns=[], index=None)
120-
elif len(_dataFrames) == 1:
121-
return _dataFrames[0]
122-
else:
123-
return _dataFrames
137+
return _parser.generator()
124138

125139
# private helper for c
126140
@staticmethod

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy