我对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");'
当你这样做的时候,外部查询会将所有的标签转换为字段,因此它将被转换为数据框架中的列。