将 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");'

执行此操作时,外部查询会将所有标签转换为字段,因此它将转换为数据框中的列