pandabase将pandas数据帧链接到sql数据库。支持读取、追加和upsert。

pandabase的Python项目详细描述


pandabase

Build Status

pandabase是一个用于从sqlite读取和写入数据帧的工具

默认情况下,使用dataframe.index作为主键。通过使用显式主键,pandabase可以很容易地将pandas数据插入sql数据库。

为时间序列数据集设计,这些数据集需要随时间更新并存储到磁盘,但在内存中用于计算。

在Python3.6和3.7下测试,使用新版本的Pandas和SqlAlchemy

功能

  • 主键(任何命名索引都假定为pk)
  • 还支持“自动索引”
  • 插入模式:“仅创建”、“插入”和“附加”
  • 替换pd.dataframe.to_sql和pd.read_sql
  • 在sqlite下测试
  • 即将提供Postgres支持
  • pytest中的自动测试
  • 96%的覆盖率
  • 还包括pandabase.companda.companda,用于数据帧的丰富比较

设计注意事项

  • 最小依赖性:sqlalchemy和pandas是唯一的要求
  • 数据库是真相的来源:将强制输入数据流以适应现有模式
    • 但对于如何从数据帧创建新表也相当聪明
  • 速度不会太慢

许可证

麻省理工学院许可证

谢谢

部分代码从dataset和pandas.sql中被盗

安装

从您的内部选择您的虚拟环境:

~/$ pip install pandabase

对于最新版本:

~/$ git clone https://github.com/notsambeck/pandabase
~/$ cd pandabase
~/pandabase/$ pip install -r requirements.txt
~/pandabase/$ pip install .

使用量

# Python >= 3.6>>>importpandasaspd>>>importpandabase>>>my_data=pd.DataFrame(index=range(7,12),columns=['some_number'],data=pd.np.random.random((5,1)))>>>my_data.index.name='made_up_name'# index must be named to use as PK>>>pandabase.to_sql(my_data,table_name='my_table',con='sqlite:///new_sqlite_db.sqlite',how='create_only')Table('my_table',...>>>exit()

就这些!

您的数据现在持久地存储在sqlite数据库中,使用my_data.index作为主键。若要附加或更新数据,请将“仅创建”替换为“附加”或“upsert”。若要存储没有显式索引的记录,请使用“autoindex=true”。

~/pandabase$ ls
brand_new_sqlite_db.sqlite
>>>importpandabase>>>df=pandabase.read_sql('my_table',con='sqlite:///new_sqlite_db.sqlite'))>>>dfsome_number70.72241680.07604590.213118100.453716110.406995

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类