使用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脚本将绝对url替换为相对url的教程
Apr 24 Python
python简单实现基数排序算法
May 16 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
Python中print和return的作用及区别解析
May 05 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
Python实现把类当做字典来访问
Dec 16 Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 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
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
vue实现购物车列表
2020/06/30 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python用TensorFlow做图像识别的实现
2020/04/21 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
小学竞选班长演讲稿
2014/09/09 职场文书
部门2014年度工作总结
2014/11/12 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
详解JAVA的控制语句
2021/11/11 Java/Android