将 InfluxDB 测量值导出到 Pandas 数据框,并将标签作为自己的列
Export InfluxDB measurement to Pandas Dataframe with tags as it's own columns
我是 Python 的新手,我有一个 InfluxDB 查询,我想将其设置为 pandas 数据框。但是,输出似乎只包括测量值而不包括标签值。
我的代码如下所示:
import pandas as pd
from influxdb import InfluxDBClient
def main():
host = 'localhost'
port = 8086
user = 'abc'
password = 'xyz'
dbname = 'rain_rate'
client = InfluxDBClient(host, port, user, password, dbname)
print("Influx Connected")
q = 'SELECT * FROM "rain_rate" WHERE time > now() - 24h GROUP BY "location", "site_id";'
df = pd.DataFrame(client.query(q).get_points())
print(df)
if __name__ == '__main__':
main()
当我打印数据帧时,输出仅显示列中的测量值和数据点,但标签值 "location" 和 "site_id" 不在数据帧中。
如何将 2 个标签值与测量值一起作为它们自己的列出现在数据框结果中?
提前致谢!
用 select * from
将查询括起来,并将您的实际查询作为子查询。
试试这个
'SELECT * FROM (SELECT * FROM "rain_rate" WHERE time > now() - 24h GROUP BY "location", "site_id");'
执行此操作时,外部查询会将所有标签转换为字段,因此它将转换为数据框中的列
我是 Python 的新手,我有一个 InfluxDB 查询,我想将其设置为 pandas 数据框。但是,输出似乎只包括测量值而不包括标签值。
我的代码如下所示:
import pandas as pd
from influxdb import InfluxDBClient
def main():
host = 'localhost'
port = 8086
user = 'abc'
password = 'xyz'
dbname = 'rain_rate'
client = InfluxDBClient(host, port, user, password, dbname)
print("Influx Connected")
q = 'SELECT * FROM "rain_rate" WHERE time > now() - 24h GROUP BY "location", "site_id";'
df = pd.DataFrame(client.query(q).get_points())
print(df)
if __name__ == '__main__':
main()
当我打印数据帧时,输出仅显示列中的测量值和数据点,但标签值 "location" 和 "site_id" 不在数据帧中。
如何将 2 个标签值与测量值一起作为它们自己的列出现在数据框结果中?
提前致谢!
用 select * from
将查询括起来,并将您的实际查询作为子查询。
试试这个
'SELECT * FROM (SELECT * FROM "rain_rate" WHERE time > now() - 24h GROUP BY "location", "site_id");'
执行此操作时,外部查询会将所有标签转换为字段,因此它将转换为数据框中的列