使用python的pandas库读取csv文件保存至mysql数据库


Posted in Python onAugust 20, 2018

第一:pandas.read_csv读取本地csv文件为数据框形式

data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.csv')

第二:如果存在日期格式数据,利用pandas.to_datatime()改变类型

data.iloc[:,1]=pd.to_datetime(data.iloc[:,1])

注意:=号,这样在原始的数据框中,改变了列的类型

第三:查看列类型

print(data.dtypes)

第四:方法一:保存至MYSQL【缺点耗时长】

利用MYSQLdb库,封装成一个类,实现创建表,添加数据的操作,缺点耗时长

class Jess_mysql():
 """
 设置mysql类,实现创建数据框,表,及添加数据
 """
 def __init__(self):
  self.mysql=MySQLdb.connect(user=mysql_name,host=mysql_host,password=mysql_password,database=mysql_database)
  self.conn=self.mysql.cursor()
 def create_table(self,table_names,col_names):
  """
  创建表
  :param table_names: 表名
  :param col_names: 列名,列表格式
  :return:
  """
  tables=' varchar(20),'.join(['%s'] *len(col_names))
  sql_yuju='create table if not exists `{t}` ({v} varchar(20))'.format(t=table_names,v=tables)#字段需要标注格式
  ss=sql_yuju %(tuple(col_names))
  print(ss)
  self.conn.execute(ss)
  self.mysql.commit()
 def add_data(self,table_name,col_names,col_data):
  """
  :param table_name: 表名
  :param col_names: 列名,字段名
  :param col_data: 字段值
  :return:
  """
  colname=','.join(['%s']*len(col_names))
  data=','.join(['%s']*len(col_data))
  sql_yuju='INSERT INTO `{t}` ({name}) VALUES ({data});'.format(t=table_name,name=colname,data=data)
  ss=sql_yuju%(*col_names,*col_data)
  #print(ss)
  self.conn.execute(ss)
  self.mysql.commit()

第五:利用sqlalchemy的create_engine()方法

1、创建连接

import sqlalchemy
#engine=sqlalchemy.create_engine('mysql + mysqldb://root:123456@118.24.26.227:3306/python_yuny')
engine=sqlalchemy.create_engine('mysql+mysqldb://{user}:{password}@{host}:3306/{database}'.format
        (user=mysql_name,password=mysql_password,host=mysql_host,database=mysql_database))

2、利用pd.io.sql.to_sql()

pd.io.sql.to_sql(frame=data,name='yunying',con=engine,index=False,if_exists='append')

注意相关参数的设置。

此外,保存到mysql中,需要注意日期格式的列,因为在mysql对应的field设置格式为varchar(20)后,原始的日期2015-8-9,写入数据库,只有2015,这需要两步操作。

a、上面第二目录的,利用pandas.to_datetime(,format='%Y-%m-%d')       #format的格式要和原始字符2016-8-9格式一样

b、利用datetime库,实现format='%Y%m%d'

x=data.shape[0]
for i in range(x):
 col_data=list(df.iloc[i,:])
 col_data[1]=datetime.date.strftime(col_data[1],'%Y%d%m')

•这一步后,日期格式由原始的2016-6-2,转为20160606,就可以以写入数据库对应的字段【其字段类型varchar(20)】

第六:读取mysql的数据

df=pd.read_sql('select * from %s'%table_name,con=engine,index_col=None)

默认不设置索引列,可以自行指定索引列名。

总结

以上所述是小编给大家介绍的使用python的pandas库读取csv文件保存至mysql数据库,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python 排列组合之itertools
Mar 20 Python
Python入门篇之字符串
Oct 17 Python
Python基于scrapy采集数据时使用代理服务器的方法
Apr 16 Python
python机器学习之神经网络(二)
Dec 20 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
Python数据类型之Set集合实例详解
May 07 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
Django多数据库联用实现方法解析
Nov 12 Python
python如何用matplotlib创建三维图表
Jan 26 Python
Python多线程原理与用法详解
Aug 20 #Python
Python模拟简单电梯调度算法示例
Aug 20 #Python
django_orm查询性能优化方法
Aug 20 #Python
Python Requests库基本用法示例
Aug 20 #Python
Django中使用第三方登录的示例代码
Aug 20 #Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 #Python
分析python请求数据
Aug 19 #Python
You might like
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
jquery的颜色选择插件实例代码
2008/10/02 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
文明家庭先进事迹材
2014/01/27 职场文书
公积金接收函格式
2015/01/30 职场文书
早恋主题班会
2015/08/14 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python