influxdb-client-python icon indicating copy to clipboard operation
influxdb-client-python copied to clipboard

query_data_frame returns a list of data frames

Open NicoCaldo opened this issue 2 years ago • 2 comments

Specifications

  • Client Version: 1.36.1
  • InfluxDB Version: 2.71
  • Platform: Linux

Code sample to reproduce problem

Push a series of data and get it back via API query

for i in range(0,600000):
   temperatura += 1
   point = (
   	Point("Postazione1")
   	.tag("TipoTest", 1)
   	.field("Temperatura", temperatura))
   DBresponse = write_api.write(bucket=bucket, org=config.influx_org, record=point)
   time.sleep(.01)

Then get back the data with API AND THE QUERY BELOW

from(bucket: “Bed1”)
|> range(start: 2023-06-22T14:10:36.106Z, stop: 2023-06-22T14:29:12.154Z)
|> filter(fn: (r) => r[“_measurement”] == “Postazione1”)
|> filter(fn: (r) => r[“TipoTest”] == “1”)
|> filter(fn: (r) => r[“_field”] == “Temperatura”)
|> aggregateWindow(every: 1s, fn: mean, createEmpty: false)
|> yield(name: “mean”)
|> pivot(rowKey:[“_time”], columnKey: [“_field”], valueColumn: “_value”)
|> keep(columns:[“_time”, “Temperatura”])

client = InfluxDBClient(url=influx_url, token=influx_token, org=influx_org, debug=False)
df = client.query_api().query_data_frame(org=influx_org, query=query)

For some reason, df is a list of, in my case, 2 data frames so I can access df[0] and df[1]

Why I got 2 data frames and not one?

Expected behavior

Return a single data frame with all the data from my measure

Actual behavior

Return two data frames

Additional info

No response

NicoCaldo avatar Jun 30 '23 13:06 NicoCaldo

Why I got 2 data frames and not one?

What are in those two data frames?

Your write function writes 1000 points, one at a time, does that take more than 1 second, such that your aggregation window covers 2 seconds?

powersj avatar Jun 30 '23 16:06 powersj

Why I got 2 data frames and not one?

What are in those two data frames?

Your write function writes 1000 points, one at a time, does that take more than 1 second, such that your aggregation window covers 2 seconds?

I upload data continuously for a period of time of several minutes so, imagine the for loop for such period of time

NicoCaldo avatar Jul 03 '23 15:07 NicoCaldo