使用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的高级Git库 Gittle
Sep 22 Python
Python中的descriptor描述器简明使用指南
Jun 02 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
python实现大转盘抽奖效果
Jan 22 Python
python实现电子产品商店
Feb 26 Python
jupyter 导入csv文件方式
Apr 21 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python 中 Shutil 模块详情
Nov 11 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
vue实现购物车列表
2020/06/30 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
Python中统计函数运行耗时的方法
2015/05/05 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python实现智能语音天气预报
2019/12/02 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
社会实践心得体会
2014/01/03 职场文书
运动会解说词200字
2014/02/06 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
2014国培学习感言
2014/03/05 职场文书
交通事故调解协议书
2014/04/16 职场文书
爱心倡议书范文
2014/05/12 职场文书
新党章心得体会
2014/09/04 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP