使用pandas导出sqlite3数据库时出现的未知列

时间:2017-03-02 19:37:53

标签: python pandas datetime sqlite

我正在使用连接到Raspberry Pi的温度和湿度传感器将这些传感器定期记录到具有以下模式的sqlite3数据库中:

sqlite> .schema
CREATE TABLE sensor_data (tdate DATE, ttime TIME, temperature NUMERIC, humidity NUMERIC);

出于测试目的,只有两个条目:

sqlite> SELECT * FROM sensor_data;
2017-03-02|19:04:42|19.8999996185303|51.5
2017-03-02|19:26:08|19.8999996185303|51.2000007629395

现在我想使用pandas分析和绘制数据:

#! /usr/bin/python
from datetime import datetime
import sqlite3
import pandas as pd

conn = sqlite3.connect('test.db')

    with conn:
        curs = conn.cursor()
        df = pd.read_sql_query("SELECT * FROM sensor_data", conn,
                        parse_dates={'tdate':"%Y-%m-%d",'ttime':"%H:%M:%S"})
        print(df)

conn.close()

结果:

$ ./test.py 
   tdate               ttime  temperature   humidity
0 2017-03-02 1900-01-01 19:04:42         19.9  51.500000
1 2017-03-02 1900-01-01 19:26:08         19.9  51.200001

我的问题是: 如何删除包含1900-01-01的列,然后将tdatettime合并到一列中?

提前致谢!

干杯, 拉斯

1 个答案:

答案 0 :(得分:0)

试试这个:

In [13]: df = pd.read_sql_query("SELECT * FROM sensor_data", conn,
    ...:                        parse_dates=['tdate','ttime']).drop('tdate', 1)

In [14]: df
Out[14]:
                ttime  temperature  humidity
0 2017-03-02 19:04:42         19.9      51.5
1 2017-03-02 19:26:08         19.9      51.2