GeekTop
  • 首页
  • 关于

GeekTop

不止代码

PostgreSQL 里存储 pandas 数据帧时指定列的类型

PostgreSQL 里存储 pandas 数据帧时指定列的类型

2016年5月18日 Alex Comments 0 Comment

最近在研究一个股票数据抓取的项目 tushare,返回的数据类型为 pandas 数据帧,希望把这些数据存储的 PostgreSQL,以便日后分析。

pandas 往数据库存储依赖于 sqlalchemy。 sqlalchemy有很强的推导能力,默认情况下也可以做的很好,但是有些时候往往不是尽如人意,例如在默认情况下会把所有的字符串存储为 TEXT 类型。对一个完美主义者来说,这是不可接受的,我们希望尽可能使用最适合的数据类型。

pandas 存储数据的时候,提供了一个网数据库里面存储的方法,to_sql ,可以存在 MySQL,PostgreSQL 等关系数据里。但是对如何制定数据类型说的并不清楚,只是说需要 SQLAlchemy 支持的类型,SQLAlchemy 的文档也没有讲的特别清楚,看来需要自己来探查了。

In [1]: import tushare as ts

In [2]: d = ts.get_hist_data('600848')

In [3]: d['code'] = '600848'

In [4]: from sqlalchemy.dialects.postgresql import *

In [5]: engine = create_engine('postgres://user:passwd@127.0.0.1/db_name?charset=utf8')

In [6]: from sqlalchemy import create_engine

In [7]: dtype = {
        'date': DATE,
        'code': CHAR(6)
}

In [8]: d.to_sql('testa', engine, dtype=dtype)

当我登录到数据库上去看,发现我所要改的字段类型已经改好。

偶然发现的一个小问题,写出来分享一下。


编程
PostgreSQL, Python

Post navigation

NEXT
Python 中的 deepcopy 和 copy
PREVIOUS
CPU 核心数对 PostgreSQL 性能的影响

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

最近文章

  • 姥姥
  • 设计一个可扩展的用户模型
  • 使用 Apple 的 Keychain 保存 SSH 的 passphase
  • 解决 ABA 问题
  • 关于 macOS 上面部分 emoji 无法显示的问题
  • 这些年我技术栈的变化
  • 搬瓦工、狗云、hostodo、oracle对比测试
  • Google Drive 无法上传文件
  • 使用 socks5 代理 git ssh 协议
  • 到底要不要“润”
  • 可复用的代码
  • 关于疫情的一点点反思
  • 我的风控策略(投资篇)
  • 我的风控策略(生活篇)
  • Spring Boot是如何处理异常的
  • 编码与解码
  • 基于统计的图像目标检索
  • 有限状态机和状态模式
  • API安全设计
  • 用户密码的存储策略

近期评论

  • ǝɔɐǝԀʎzɐɹϽ发表在《可复用的代码》
  • Alex发表在《可复用的代码》
  • ǝɔɐǝԀʎzɐɹϽ发表在《到底要不要“润”》
  • ǝɔɐǝԀʎzɐɹϽ发表在《可复用的代码》
  • ǝɔɐǝԀʎzɐɹϽ发表在《我的风控策略(生活篇)》
  • ǝɔɐǝԀʎzɐɹϽ发表在《如何写出简洁优雅的代码》
  • 张志亮发表在《如何写出简洁优雅的代码》

分类

  • AI (2)
  • Java应用安全之道 (1)
    • 加密与解密 (1)
  • Odoo (2)
  • Python (1)
  • 图像处理 (1)
  • 年鉴 (1)
  • 数据库 (10)
  • 编程 (14)
    • Spring (1)
  • 读书笔记 (2)
  • 运维 (5)
  • 随笔 (10)

归档

  • 2023年1月 (2)
  • 2022年8月 (1)
  • 2022年7月 (4)
  • 2022年6月 (2)
  • 2022年5月 (2)
  • 2022年4月 (3)
  • 2021年10月 (1)
  • 2021年7月 (1)
  • 2021年5月 (1)
  • 2020年11月 (1)
  • 2020年7月 (1)
  • 2020年3月 (2)
  • 2020年2月 (1)
  • 2019年1月 (1)
  • 2018年12月 (2)
  • 2018年11月 (2)
  • 2017年4月 (1)
  • 2016年11月 (1)
  • 2016年9月 (1)
  • 2016年7月 (1)
  • 2016年5月 (3)
  • 2016年4月 (2)
  • 2016年3月 (1)
  • 2016年2月 (2)
  • 2015年12月 (1)
  • 2015年11月 (2)
  • 2015年8月 (1)
  • 2015年4月 (1)
  • 2015年3月 (1)

标签

Database devops Java MySQL PostgreSQL Python shell Spring SpringBoot Spring Security 安全 年鉴 总结 编程 随笔
© 2015-2023   Geektop.net All Rights Reserved.