使用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正则表达式中的括号匹配问题
Dec 14 Python
改进Django中的表单的简单方法
Jul 17 Python
python3音乐播放器简单实现代码
Apr 20 Python
Python模拟用户登录验证
Sep 11 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Flask框架信号用法实例分析
Jul 24 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
python实现的汉诺塔算法示例
Oct 23 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 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 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
python字典基本操作实例分析
2015/07/11 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python内存映射文件读写方式
2020/04/24 Python
Python实现SMTP邮件发送
2020/06/16 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
文明礼仪小标兵事迹
2014/01/12 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
法学自荐信
2014/06/20 职场文书
学习心理学的体会
2014/11/07 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
百家讲坛观后感
2015/06/12 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫