使用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中expandtabs()方法的使用
May 18 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
用python写测试数据文件过程解析
Sep 25 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python 插入日期数据到Oracle实例
Mar 02 Python
Python decimal模块使用方法详解
Jun 08 Python
python/golang实现循环链表的示例代码
Sep 14 Python
python实现移动木板小游戏
Oct 09 Python
python基础之while循环语句的使用
Apr 20 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 信息采集程序代码
2009/03/17 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
Python 存取npy格式数据实例
2020/07/01 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Python数据处理的三个实用技巧分享
2022/04/01 Python