2016 - 2024

感恩一路有你

pandas处理csv文件实例 python怎么和MySQL链接?

浏览量:3974 时间:2023-05-16 21:11:49 作者:采采

python怎么和MySQL链接?

python如何连接mysql?目前有三种基本方法,分别是pymysql、sqlalchemy和pandas。下面我分别简单介绍一下,有兴趣的朋友可以试试:

这是python操作mysql最基本最基础的第三方包。相信很多朋友都接触过,它封装了mysql的基本操作,包括添加、删除、修改、查询。只需要几行代码就可以轻松读写mysql,简单易学。如果你安装了它,你可以直接输入命令 "安装pymysql "在cmd窗口中:

安装完成后,我们就可以直接操作mysql了,如下:先创建一个连接,然后获取一个游标,最后直接执行sql语句。这里应该注意的是,唐 不要忘记在添加、删除和修改之后提交更新数据库,否则数据将不会被更新:

02.sqlalchemy这是一个基于对象关系映射模型ORM开发的开源数据库框架。python类与数据表关联,底层繁琐的数据库操作被抛弃。通过编写一组代码,很容易在主流数据库之间来回切换。如果你安装它,只需输入命令 "安装sqlalchemy "在cmd窗口中,程序会自动检测相关的依赖项并安装它:

安装完成后,我们可以直接启动数据库操作,如下:先创建数据库连接,再定义对象类(对应具体数据表),最后直接添加、删除、更改查询。需要注意的是,更新操作也需要提交到数据库,否则数据不会被更新:

03,熊猫这是python中非常有名的数据分析包。相信很多朋友都听说过或者用过。功能强大,操作简单。可以轻松处理各种日常文件,包括txt、excel、csv、json等。对应mysql,也提供了现成的函数,可以直接读写mysql,代码更少,更容易掌握。如果安装了,直接输入命令 "pip安装熊猫 "在cmd窗口中。

安装完成后,我们可以直接调用现成的函数来操作mysql,Mysql依赖于sqlalch

python与vba处理数据的区别?

有一个csv文件,包含CNUM和COMPANY两列,数据包含空行和重复行。

要求:

1)删除空白行;

2)重复的行数据只保留一行有效数据;

3)将公司列的名称改为company _ new ;

4)增加六列,即C _ COL, d _ COL ;e _ COL ;f _ COL ;G _ COL和 H _ COL。

首先,使用python熊猫来处理:将熊猫作为pd导入

将numpy作为np导入

从熊猫进口数据框,系列

d:

文件_对象打开(文件路径)

Df_csv(file_obj) #读取csv文件并创建数据帧。

Df (columns [cnum,company,c _ col,d _ col,e _ col,f _ col,g _ col,h _ col],fill _ valu:公司_新},到位真)#修改栏目名称。

Ddff.dropna (axis0,howall) #删除NAN,即文件中的空行。

Df [CNUM] df [cnum]。as type (int32) #将cnum列的数据类型指定为int32。

ddf . drop _ duplicates(subset[cnum,company _ new],keep first) #删除重复行。

_csv(newpath,indexFalse,encodingGBK)

文件_()

如果__nam:

fil: users 12078 desktoppythocnum _ company . CSV

fil: users 12078 desktoppythocnum _ COMPANY _ output . CSV

处理数据(文件路径,文件保存路径)

二、用VBA应对:选项基数1

选项显式

副总管()

出错时转到错误处理

将wb标注为工作簿

将wb_out标注为工作簿

Dim sht作为工作表

Dim sht_out作为工作表

变暗rng As范围

将已用行作为字节进行Dim

Dim usedrows_out As Byte

Dim dict_cnum_company作为宾语

Dim字符串文件路径作为字符串

Dim str_n:赋值

str _ file _ path c: users 12078 desktoppythocnum _ company . CSV

str _ new _ file _ path c: users 12078 desktoptythocnum _ COMPANY _ output . CSV

设置WB checkAndAttachWorkbook(str _ file _ path)

设置sht (CNUM_COMPANY)

设置wb_out

创建一个CSV文件

设置sht_out wb_(CNUM_COMPANY_OUTPUT)

设置dict_cnum_company CreateObject(脚本。字典)

usedrows(getlastvidrow(sht,A),getlastvidrow(sht,B))

将标题COMPANY重命名为Company_New,删除空白的重复行/行。

Dim cnum_company作为字符串

cnum _公司对于sht中的每个rng。范围(A1,A已用行数)

If ((0,1)。价值)公司

(0, 1).价值公司_新建

如果…就会结束

cnum_company - (0,1)。价值

If (cnum_company) -而不是dict_cnum_company。存在(- (0,1)。值)那么

dict_cnum_ - (0,1)。值,

如果…就会结束

下一个rng

循环dict的关键字,将关键字拆分成cnum数组和company数组。

Dim index_dict As Byte

Dim arr_cnum()

Dim arr _公司()

对于index_dict 0到UBound(dict_cnum_)

ReDim Preserve arr_cnum(1到UBound(dict_cnum_) 1)

ReDim Preserve arr_Company(1到UBound(dict_cnum_) 1)

arr _ cnum(index _ dict 1)Split(dict _ cnum _()(index _ dict),-)(0)

arr _ Company(index _ dict 1)Split(dict _ cnum _()(index _ dict),-)(1)

索引_字典

然后

将数组的值赋给单元格。

嘘_出。Range(A1,A UBound(arr_cnum)) (arr_cnum)

嘘_出。范围(B1,B下限(arr_Company)) (arr_Company)

添加6列以输出CSV fil:

Dim arr_columns()作为变量

arr_columns数组(C_col,D_col,E_col,F_col,G_col,H_col)

嘘_出。Range(C1:H1) arr_c奥伦斯

调用checkAndCloseWorkbook(str _ file _ path,False)

调用checkAndClos:

调用checkAndCloseWorkbook(str _ file _ path,False)

调用checkAndCloseWorkbook(str _ new _ file _ path,False)

末端接头

辅助功能:

获取工作表中第N列的最后一行

函数getLastValidRow(in_ws作为工作表,in_col作为字符串)

getLastValidRow in_ws。单元格(in_,in_col)。结束(xlUp)。排

结束功能

函数checkAndAttachWorkbook(in _ WB _ path As String)作为工作簿

将wb标注为工作簿

将mywb显示为字符串

mywb in_wb_path

对于工作簿中的每个wb

如果LCase(wb。全名)LCase(mywb) Then

设置checkAndAttachWorkbook wb

退出功能

如果…就会结束

然后

设置wb (in_wb_path,Updat:0)

设置checkAndAttachWorkbook wb

结束功能

函数checkAndCloseWorkbook(in _ WB _ path为字符串,in_saved为布尔值)

将wb标注为工作簿

将mywb显示为字符串

mywb in_wb_path

对于工作簿中的每个wb

如果LCase(wb。全名)LCase(mywb) Then

savechang:in _ saved

退出乐趣动作

如果…就会结束

然后

结束功能

三、输出结果:

两种方法的输出结果是相同的:

四、对比总结:

Python pandas内置了大量的数据处理方法,所以我们不 t不需要反复做轮子,用起来非常方便,代码也简单很多。

Excel VBA通过使用数组、字典等数据结构(实际需求中,数据量往往很大,所以有些地方没有直接遍历单元格的方法),以及处理字符串、数组、字典的多种方法来处理这个需求。文件的操作也很复杂。一旦出现错误,比python更难调试。代码已经尽可能优化了,但还是远远超过Python。

cnum 文件 数据

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。