我认为您的解决方案更像是一个过程而不是编程过程。既然担心性能,为什么要使用 Python 作为数据存储处理程序?从本质上讲,Python 类似于与从外部源(即 MySQL 或 SQLite 等专用数据库(使用 ODBC/OLEDB))提取的数据进行交互的客户端。
那么,为什么不事先使用索引、关系、SQL 引擎数据库构建数据集(追加行、更新记录、选择列),然后导入 Python 数据帧以用于分析/图形目的?示例包括:
数据库连接
conn = sqlite3.connect("databasename.sqlite")
df = pd.read_sql("SELECT [field1], [field2] from datatable", conn)
df
追加行
conn = sqlite3.connect('databasename.sqlite')
cur = conn.cursor()
sql = "INSERT INTO datatable (field1, field2, field3) VALUES ('{0}','{1}','{2}');".format(items[0], items[1], items[2])
cur.execute(sql)
db.commit()
CSV 导出/导入
conn = sqlite3.connect('databasename.sqlite')
cur = conn.cursor()
cur.execute("SELECT [field1], [field2] from datatable")
a = csv.writer(open('datafile.csv', 'w', newline=''))
for row in cur.fetchall() :
a.writerow(row)
filepath = 'datafile.csv' # OUTPUTTED PRIOR FROM DATABASE
tp = pd.io.parsers.read_csv(filepath, sep=',', iterator=True, chunksize=1000, encoding = "ISO-8859-1")
finaldf = pd.concat(list(tp), ignore_index=True)