【发布时间】:2018-02-27 04:40:12
【问题描述】:
我正在尝试使用 pandas 创建一个 sqlite 数据库。
我可以通过以下方式保存数据:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine(path, echo=False)
df_flows.to_sql('flows', engine, if_exists='append', index=False, index_label='First')
我可以用
回读它df = pd.read_sql("SELECT * FROM flows WHERE First>1504101810 AND First<1504105409", engine)
数据在磁盘上,但我认为索引无法正常工作:
In [22]: from sqlalchemy.engine import reflection
In [23]: insp = reflection.Inspector.from_engine(engine)
In [24]: insp.get_indexes('flows')
Out[24]: []
现在我有两个问题:
1) 为什么First 列没有出现insp.get_indexes('flows')
2) 如何向我创建的数据库添加 1 个或多个索引。
编辑:
这是数据框的结构
In [25]: df_flows.dtypes
Out[25]:
Protocol object
Src object
SrcPort float64
Dst object
DstPort float64
Group ID int64
Port object
VPort int64
IP TOS object
VLAN ID float64
VLAN Pri float64
MPLS Exp float64
Application object
Packets int64
Messages int64
Bytes int64
First int64
Last int64
SrcSubnet object
DstSubnet object
dtype: object
【问题讨论】:
标签: python sqlite pandas sqlalchemy