使用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 25 Python
Python制作简单的网页爬虫
Nov 22 Python
Python 登录网站详解及实例
Apr 11 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
Python搭建代理IP池实现存储IP的方法
Oct 27 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
Tensorflow分批量读取数据教程
Feb 07 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
详解Python高阶函数
Aug 15 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
Python基础之条件语句详解
Jun 16 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
PHP 翻页 实例代码
2009/08/07 PHP
php反射应用示例
2014/02/25 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
python实现简单中文词频统计示例
2017/11/08 Python
python 重命名轴索引的方法
2018/11/10 Python
谈谈Python中的while循环语句
2019/03/10 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
pycharm导入源码的具体步骤
2020/08/04 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python