我是靠谱客的博主 勤奋大米,最近开发中收集的这篇文章主要介绍python pandas 数据库_Python中pandas函数操作数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一:创建链接数据库引擎

Python

from sqlalchemy import create_engine

engine= create_engine('postgresql://user@58.251.157.179:port/database',echo = True)

echo = True ,会显示在加载数据库所执行的SQL语句。

1

2

3

4

5

fromsqlalchemyimportcreate_engine

engine=create_engine('postgresql://user@58.251.157.179:port/database',echo=True)

echo=True,会显示在加载数据库所执行的SQL语句。

二:读取数据库数据,存储为DataFrame格式

1:读取自定义数据(通过SQL语句)

pandas.read_sql_query(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None,chunksize=None)

例如:data = pd.read_sql_query('select * from t_line ',con = engine),会返回一个数据库t_line表的DataFrame格式。如有有时间列可以parse_dates = [time_column]用于解析时间,并把此列作为索引index_col = [time_column]

read_sql_query()中可以接受SQL语句,包括增删改查。但是DELETE语句不会返回值(但是会在数据库中执行),UPDATE,SELECT,等会返回结果.

例如:data = pd.read_sql_query('delete from test_cjk where f_intime = 1309',con = engine),这条语句会执行,删除 test_cjk表中f_intime=1309的值,但不会返回data。

其他例子:

'''插入操作'''  pd.read_sql_query("insert into cjk_test h values %(data)s",params={'data':v_split[11]},con = engine)

'''更新操作''' pd.read_sql_query("update cjk_test set a='粤11111'  WHERE a='粤B30738'",con = engine)

'''删除操作''' pd.read_sql_query("delete from cjk_test where c='1'",con=engine)

删除插入更新操作没有返回值,程序会抛出SourceCodeCloseError,并终止程序。如果想继续运行,可以try捕捉此异常。

52488690

2:读取整张表于DataFrame格式

pandas.read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize=None)

例如:data = pd.read_sql_table(table_name = 't_line',con = engine,parse_dates = 'time',index_col = 'time',columns = ['a','b','c'])

3:读数据库

pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)

三:数据写入于数据库

DataFrame.to_sql(name, con, flavor='sqlite', schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None)

例如:data.to_sql('test_cjk',engine,if_exists='replace',index = False),把数据写入test_cjk表中。

if_exists='replace',如果数据库中有test_cjk表,则替换。

if_exists='append',如果数据库中有test_cjk表,则在表后面添加。

if_exists='fail',如果数据库中有test_cjk表,则在写入失败。

chunksize,如果data的数据量太大,数据库无法响应可能会报错,这时候就可以设置chunksize,比如chunksize = 1000,data就会一次1000的循环写入数据库。

更多可以参考文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html?highlight=sql#pandas.DataFrame.to_sql

2018-05-29-012523.png

2020012309512985.png

最后

以上就是勤奋大米为你收集整理的python pandas 数据库_Python中pandas函数操作数据库的全部内容,希望文章能够帮你解决python pandas 数据库_Python中pandas函数操作数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部