我完全不熟悉Python的sqlite3模块(以及一般的SQL),这完全让我感到困惑.对cursor物体描述的充分缺乏(相反,它们的必要性)似乎也很奇怪.
这段代码是首选方式:
import sqlite3
conn = sqlite3.connect("db.sqlite")
c = conn.cursor()
c.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
c.close()
Run Code Online (Sandbox Code Playgroud)
这个不是,即使它工作得很好而没有(看似毫无意义)cursor:
import sqlite3
conn = sqlite3.connect("db.sqlite")
conn.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么需要一个cursor?
这看起来似乎毫无意义.对于我的脚本中访问数据库的每个方法,我应该创建并销毁一个cursor?
为什么不直接使用该connection对象?
我正在探索作为长期SAS用户切换到python和pandas.
但是,今天运行一些测试时,我很惊讶python在尝试pandas.read_csv()128mb csv文件时内存不足.它有大约200,000行和200列主要是数字数据.
使用SAS,我可以将csv文件导入SAS数据集,它可以和我的硬盘一样大.
有类似的东西pandas吗?
我经常处理大型文件,无法访问分布式计算网络.
我有一个包含约 50,000 行和 300 列的 csv 文件。执行以下操作会导致 Pandas (python) 中出现内存错误:
merged_df.stack(0).reset_index(1)
Run Code Online (Sandbox Code Playgroud)
数据框如下所示:
GRID_WISE_MW1 Col0 Col1 Col2 .... Col300
7228260 1444 1819 2042
7228261 1444 1819 2042
Run Code Online (Sandbox Code Playgroud)
我正在使用最新的 pandas (0.13.1),并且行数较少 (~2,000) 的数据帧不会出现该错误
谢谢!