我认为你的解决方案更多的是一个过程而不是编程。为什么使用Python作为数据存储处理程序,因为担心性能?从本质上讲,Python将类似于与从外部源提取的数据(即专用数据库,如MySQL或SQLite(使用ODBC/OLEDB))交互的客户端。因此,为什么不事先使用索引的关系型SQL引擎数据库构造数据集(追加行,更新记录,选择列),然后导入到Python数据框中以用于分析/图形目的?为什么不使用索引的关系型SQL引擎数据库来构造数据集?例子包括:
数据库连接
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)
iat的工作速度更快 – ren 2015-02-24 20:05:26