使用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元组操作实例解析
Sep 23 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
Python字符串、元组、列表、字典互相转换的方法
Jan 23 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python 接口返回的json字符串实例
Mar 27 Python
python利用微信公众号实现报警功能
Jun 10 Python
python字典改变value值方法总结
Jun 21 Python
Pandas中resample方法详解
Jul 02 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
运行Python编写的程序方法实例
Oct 21 Python
python如何利用paramiko执行服务器命令
Nov 07 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 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
php中数组最简单的使用方法
2020/12/27 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
vue实现文字加密功能
2019/09/27 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
对于Python中线程问题的简单讲解
2015/04/03 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
Python多线程多进程实例对比解析
2020/03/12 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python利用线程实现多任务
2020/09/18 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
工作态度检讨书
2014/02/11 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL