推广 热搜: 广场  Java  app  Word  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

python pandas读取excel文件代码 pandas 写入excel不显示格式?

   2023-05-06 企业服务招财猫100
核心提示:pandas写入excel不显示格式?使用pandas格式化excpython与vba处理数据的区别?有一个csv文件,包含CNUM和COMPANY两列,数据包含空行和重复行。要求:1)删除空白行;2

pandas写入excel不显示格式?

使用pandas格式化exc

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]。astype(int32)#将cnum列的数据类型指定为int32。

ddf.drop_duplicates(subset[cnum,company_new],keepfirst)#删除重复行。

_csv(newpath,indexFalse,encodingGBK)

文件_()

如果__nam:

fil:users12078desktoppythocnum_company.CSV

fil:users12078desktoppythocnum_COMPANY_output.CSV

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

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

选项显式

副总管()

出错时转到错误处理

将wb标注为工作簿

将wb_out标注为工作簿

Dimsht作为工作表

Dimsht_out作为工作表

变暗rngAs范围

将已使用的行作为字节显示

Dimusedrows_outAsByte

Dimdict_cnum_company作为宾语

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

Dimstr_n:赋值

str_file_pathc:users12078desktoppythocnum_company.CSV

str_new_file_pathc:users12078desktoptythocnum_COMPANY_output.CSV

设置WBcheckAndAttachWorkbook(str_file_path)

设置sht(CNUM_COMPANY)

设置wb_out

创建一个CSV文件

设置sht_outwb_(CNUM_COMPANY_OUTPUT)

设置dict_cnum_companyCreateObject(脚本。字典)

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

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

Dimcnum_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数组。

Dimindex_dictAsByte

Dimarr_cnum()

Dimarr_公司()

对于index_dict0到UBound(dict_cnum_)

ReDimPreservearr_cnum(1到UBound(dict_cnum_)1)

ReDimPreservearr_Company(1到UBound(dict_cnum_)1)

arr_cnum(index_dict1)Split(dict_cnum_()(index_dict),-)(0)

arr_Company(index_dict1)Split(dict_cnum_()(index_dict),-)(1)

索引_字典

然后

将数组的值赋给单元格。

嘘_出。Range(A1,AUBound(arr_cnum))(arr_cnum)

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

添加6列以输出CSVfil:

Dimarr_columns()作为变量

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

嘘_出。范围(C1:H1)arr_columns

调用checkAndCloseWorkbook(str_file_path,False)

调用checkAndClos:

调用checkAndCloseWorkbook(str_file_path,False)

调用checkAndCloseWorkbook(str_new_file_path,False)

末端接头

辅助功能:

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

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

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

结束功能

函数checkAndAttachWorkbook(in_WB_pathAsString)作为工作簿

将wb标注为工作簿

将mywb显示为字符串

mywbin_wb_path

对于工作簿中的每个wb

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

设置checkAndAttachWorkbookwb

退出功能

如果…就会结束

然后

设置wb(in_wb_path,Updat:0)

设置checkAndAttachWorkbookwb

结束功能

函数checkAndCloseWorkbook(in_WB_path为字符串,in_saved为布尔值)

将wb标注为工作簿

将mywb显示为字符串

mywbin_wb_path

对于工作簿中的每个wb

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

savechang:in_saved

退出功能

如果…就会结束

然后

结束功能

三、输出结果:

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

四、对比总结:

Python熊猫有很多内置的地方。管理数据的方法,我们不不需要反复制作轮子,使用起来非常方便,代码也简单很多。

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

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8