找回密码
 会员注册
查看: 14|回复: 0

Python常用的20个excel数据处理的脚本(附详细源码)!建议收藏,总有你能用上的!

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
72170
发表于 2024-9-7 19:50:36 | 显示全部楼层 |阅读模式
目录前言1.读取Excel文件2.数据筛选3.数据汇总4.数据分组5.数据排序6.数据对比7.数据合并8.Sheet合并9.多个Excel文件合并10.缺失值填充11.数据清洗12.数据透视表13.数据重塑14.数据聚合15.数据统计16.数据类型转换17.数据切片18.数据重命名19.数据去重20.写入Excel文件结语前言在Python中,处理Excel数据是一个常见的需求,通常可以通过多个库来实现,如pandas、openpyxl、xlsxwriter等。今天给大家带来20个常用的Excel数据处理脚本示例,涵盖了从基础的文件读写到复杂的数据分析和格式设置等操作(文末附python学习资料)。示例数据假设我们有一个名为data.xlsx的Excel文件,其中包含以下数据:|Column1|Column2|Column3||---------|---------|---------||A    |10   |20   ||B    |20   |30   ||C    |30   |40   ||D    |40   |50   ||E    |50   |60   ||F    |60   |70   ||G    |70   |80   ||H    |80   |90   ||I    |90   |100   |‍1.读取Excel文件importpandasaspddefread_excel(file_path):df=pd.read_excel(file_path,engine='openpyxl')returndfif__name__=="__main__":file_path="data.xlsx"df=read_excel(file_path)print(df)2.数据筛选筛选出Column1为'D'的行。importpandasaspddeffilter_data(file_path,column,value):df=pd.read_excel(file_path,engine='openpyxl')filtered_df=df[df[column]==value]returnfiltered_dfif__name__=="__main__":file_path="data.xlsx"column="Column1"value="D"filtered_df=filter_data(file_path,column,value)print(filtered_df)3.数据汇总计算Column2的总和。importpandasaspddefsummarize_data(file_path,column):df=pd.read_excel(file_path,engine='openpyxl')total=df[column].sum()returntotalif__name__=="__main__":file_path="data.xlsx"column="Column2"total=summarize_data(file_path,column)print(total)4.数据分组按Column1分组并计算Column2的平均值。importpandasaspddefgroup_data(file_path,by,agg):df=pd.read_excel(file_path,engine='openpyxl')grouped=df.groupby(by)[agg].mean()returngroupedif__name__=="__main__":file_path="data.xlsx"by="Column1"agg="Column2"grouped=group_data(file_path,by,agg)print(grouped)5.数据排序按Column2升序排序。importpandasaspddefsort_data(file_path,column,ascending=True):df=pd.read_excel(file_path,engine='openpyxl')sorted_df=df.sort_values(by=column,ascending=ascending)returnsorted_dfif__name__=="__main__":file_path="data.xlsx"column="Column2"sorted_df=sort_data(file_path,column)print(sorted_df)6.数据对比比较两个Excel文件data1.xlsx和data2.xlsx中Column1的不同之处。​​​​​importpandasaspddefcompare_data(file_path1,file_path2,on):df1=pd.read_excel(file_path1,engine='openpyxl')df2=pd.read_excel(file_path2,engine='openpyxl')merged=pd.merge(df1,df2,on=on,how='outer',indicator=True)diff=merged[merged['_merge']!='both']returndiffif__name__=="__main__":file_path1="data1.xlsx"file_path2="data2.xlsx"on="Column1"diff=compare_data(file_path1,file_path2,on)print(diff)7.数据合并将两个Excel文件data1.xlsx和data2.xlsx中具有相同Column1的行合并。​​​​​​​importpandasaspddefmerge_data(file_path1,file_path2,on):df1=pd.read_excel(file_path1,engine='openpyxl')df2=pd.read_excel(file_path2,engine='openpyxl')merged=pd.merge(df1,df2,on=on,how='outer')returnmergedif__name__=="__main__":file_path1="data1.xlsx"file_path2="data2.xlsx"on="Column1"merged=merge_data(file_path1,file_path2,on)print(merged)8.Sheet合并合并同一个Excel文件data.xlsx中的所有Sheet。​​​​​​​importpandasaspddefmerge_sheets(file_path):sheets=pd.read_excel(file_path,sheet_name=None,engine='openpyxl')combined=pd.concat(sheets.values(),ignore_index=True)returncombinedif__name__=="__main__":file_path="data.xlsx"combined=merge_sheets(file_path)print(combined)9.多个Excel文件合并合并所有名为*.xlsx的Excel文件。​​​​​​​importpandasaspdimportglobdefmerge_multiple_files(file_pattern):files=glob.glob(file_pattern)dfs=[pd.read_excel(file,engine='openpyxl')forfileinfiles]combined=pd.concat(dfs,ignore_index=True)returncombinedif__name__=="__main__":file_pattern="*.xlsx"combined=merge_multiple_files(file_pattern)print(combined)作为一个IT的过来人,我自己整理了一些python学习资料,希望对你们有帮助。朋友们如果需要可以点击下方链接或微信扫描下方二维码都可以免费获取【保证100%免费】。CSDN大礼包:《2024年最新Python全套学习资料包】免费领取(安全链接,放心点击)10.缺失值填充将Column2中的缺失值填充为0。​​​​​​​importpandasaspddeffill_missing_values(file_path,column,value):df=pd.read_excel(file_path,engine='openpyxl')df[column].fillna(value,inplace=True)returndfif__name__=="__main__":file_path="data.xlsx"column="Column2"value=0df=fill_missing_values(file_path,column,value)print(df)11.数据清洗移除Column1中的空格。​​​​​​​importpandasaspddefclean_data(file_path,column,regex):df=pd.read_excel(file_path,engine='openpyxl')df[column]=df[column].str.replace(regex,'')returndfif__name__=="__main__":file_path="data.xlsx"column="Column1"regex=r'\s+'df=clean_data(file_path,column,regex)print(df)12.数据透视表创建一个透视表,按Column1分类,显示Column2的总和。​​​​​​​importpandasaspddefpivot_table(file_path,index,columns,values):df=pd.read_excel(file_path,engine='openpyxl')pivoted=pd.pivot_table(df,index=index,columns=columns,values=values,aggfunc='sum')returnpivotedif__name__=="__main__":file_path="data.xlsx"index="Column1"columns="Column2"values="Column3"pivoted=pivot_table(file_path,index,columns,values)print(pivoted)13.数据重塑将Column2和Column3重塑成多行。​​​​​​​importpandasaspddefmelt_data(file_path,id_vars,value_vars):df=pd.read_excel(file_path,engine='openpyxl')melted=pd.melt(df,id_vars=id_vars,value_vars=value_vars)returnmeltedif__name__=="__main__":file_path="data.xlsx"id_vars="Column1"value_vars=["Column2","Column3"]melted=melt_data(file_path,id_vars,value_vars)print(melted)14.数据聚合按Column1分组,计算Column2的总和和Column3的平均值。​​​​​importpandasaspddefaggregate_data(file_path,group_by,agg):df=pd.read_excel(file_path,engine='openpyxl')aggregated=df.groupby(group_by).agg(agg)returnaggregatedif__name__=="__main__":file_path="data.xlsx"group_by="Column1"agg={"Column2":"sum","Column3":"mean"}aggregated=aggregate_data(file_path,group_by,agg)print(aggregated)15.数据统计计算Column2的统计数据。​​​​​​​importpandasaspddefdescribe_data(file_path,columns):df=pd.read_excel(file_path,engine='openpyxl')stats=df[columns].describe()returnstatsif__name__=="__main__":file_path="data.xlsx"columns=["Column2","Column3"]stats=describe_data(file_path,columns)print(stats)16.数据类型转换将Column2的数据类型转换为整数。​​​​​​importpandasaspddefconvert_types(file_path,column,dtype):df=pd.read_excel(file_path,engine='openpyxl')df[column]=df[column].astype(dtype)returndfif__name__=="__main__":file_path="data.xlsx"column="Column2"dtype=intdf=convert_types(file_path,column,dtype)print(df)17.数据切片选择前5行。​​​​​​​importpandasaspddefslice_data(file_path,start,stop):df=pd.read_excel(file_path,engine='openpyxl')sliced_df=df[start:stop]returnsliced_dfif__name__=="__main__":file_path="data.xlsx"start=0stop=5sliced_df=slice_data(file_path,start,stop)print(sliced_df)18.数据重命名将Column1重命名为NewColumn1。​​​​​​​importpandasaspddefrename_columns(file_path,old_name,new_name):df=pd.read_excel(file_path,engine='openpyxl')df.rename(columns={old_name:new_name},inplace=True)returndfif__name__=="__main__":file_path="data.xlsx"old_name="Column1"new_name="NewColumn1"df=rename_columns(file_path,old_name,new_name)print(df)19.数据去重去除Column1中的重复项。​​​​​​​importpandasaspddefremove_duplicates(file_path,subset=None):df=pd.read_excel(file_path,engine='openpyxl')unique_df=df.drop_duplicates(subset=subset)returnunique_dfif__name__=="__main__":file_path="data.xlsx"subset=["Column1"]unique_df=remove_duplicates(file_path,subset)print(unique_df)20.写入Excel文件将处理后的数据写回Excel文件。​​​​​​​importpandasaspddefwrite_excel(df,file_path):df.to_excel(file_path,index=False,engine='openpyxl')if__name__=="__main__":df=pd.DataFrame({'Column1':['A','B','C'],'Column2':[10,20,30]})file_path="output.xlsx"write_excel(df,file_path)结语学会了Python就业还是不用愁的,这些行业在薪资待遇上可能会有一些区别,但是整体来看还是很好的,我也不会说往哪个方向发展是最好的,各取所长选择自己最感兴趣的去学习就好。作为一个IT的过来人,我自己整理了一些python学习资料,希望对你们有帮助。朋友们如果需要可以点击下方链接或微信扫描下方二维码都可以免费获取【保证100%免费】。CSDN大礼包:《2024年最新Python全套学习资料包】免费领取(安全链接,放心点击)编程资料、学习路线图、源代码、软件安装包等!①Python所有方向的学习路线图,清楚各个方向要学什么东西②100多节Python课程视频,涵盖必备基础、爬虫和数据分析③100多个Python实战案例,学习不再是只会理论④华为出品独家Python漫画教程,手机也能学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-11 02:57 , Processed in 1.097581 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表