准备
from influxdb import DataFrameClient
client = DataFrameClient('192.168.1.4',8086,username=yourname,password=yourpassword,database=dbname)
查询数据的参数要用单引号
name = 'lily'
# 记住,%s不能带双引号
result = client.query(''' select * from test where name='%s' ''' % name)
数据解析
# test 是measurement
data = result['test'] # 得到DataFrame
时间解析
# 索引time带有timezone,如果需要,可以转化为以下格式
data.index[0].strftime('%Y-%m-%d') # 把一个time转化为字符串
# 把所有time转化datetime64
data.index = pd.to_datetime(data.index).apply(lambda x:x.replace(tzinfo=None))
写数据
import pandas as pd
df = pd.DataFrame(datas,columns=['id','sex','name','room']# datas是按照columns排列的二维数组,这里不给出。
# 记住,df不能太大,否则容易出现超时
client.write_points(df,measurement='data',database='test',
tag_columns=['id'],
field_columns=['sex','name','room'])