Pandas处理EXCEL表格的常用命令
| '''1.导入pandas库''' |
| import pandas as pd |
| |
| '''2.导入文件''' |
| |
| file="运费明细表.xlsx" |
| df = pd.read_excel(file,sheet_name='运费明细',skiprows=3,header=2,usecols='C:F',dtype={'ID':object,'账单日期':str,'出口日期':str},index_col='ID') |
| |
| |
| |
| |
| |
| |
| |
| '''3.导入CSV,TSV,TXT文件中的数据''' |
| |
| df = pd.read_csv(file, index_col='ID') |
| |
| df = pd.read_csv(file, sep='\t', index_col='ID') |
| |
| df = pd.read_csv(file, sep='|', index_col='ID') |
| |
| df = pd.read_csv(file,encoding='gb18030',header=1) |
| |
| |
| '''4.保存文件''' |
| |
| df.to_excel(file) |
| |
| df.to_csv(file,encoding='gb18030') |
| |
| |
| df=df.set_index('ID') |
| df.set_index('ID',inplace=True) |
| |
| with pd.ExcelWriter(file7, mode='a',engine='openpyxl') as writer: |
| df20.to_excel(writer,sheet_name='I202101',index=False) |
| |
| '''5.排序多重排序''' |
| |
| |
| |
| df.sort_values(by=['账单日期', '出口日期'], ascending=[True,False], inplace=True) |
| |
| df.sort_values(by='出口日期',inplace=True,ascending=False) |
| |
| |
| '''6.数据查看''' |
| |
| df.info() |
| |
| df.head(3) |
| |
| df.tail() |
| |
| |
| '''7.多表合并''' |
| |
| table = df1.merge(df2,how='left',on='ID').fillna('没找到') |
| |
| table=pd.merge(df1,df2,on='ID') |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| table = df1.join(df2, how='left').fillna(0) |
| |
| |
| '''8.分类汇总''' |
| |
| groups = df.groupby(['账单日期', '出口日期']) |
| |
| s = groups['应收费用'].sum() |
| |
| c = groups['ID'].count() |
| |
| df2 = pd.DataFrame({'Sum': s, 'Count': c}) |
| |
| |
| |
| '''9.消除重复数据''' |
| |
| |
| |
| df=df.drop_duplicates(subset='账单号码', inplace=True, keep='first') |
| print(df) |
| |
| |
| '''10.删除行列方法''' |
| |
| df.drop(["ID","账单日期"],axis =1) |
| |
| df.drop(columns = ["ID","账单日期"]) |
| |
| df.drop(["0a","1b"],axis = 0) |
| |
| df.drop(df.index[[0,1]]) |
| |
| df[df["ID"]<40] |
| |
| |
| '''11.旋转数据表''' |
| |
| table = df.transpose() |
| |
| df=df.T |
| |
| '''12.列与列的运算''' |
| |
| df=df["实际重量"]+df["计费重量"] |
| |
| df=df["实际重量"]-df["计费重量"] |
| |
| df=df["实际重量"]*df["计费重量"] |
| |
| df=df["实示重量"]/df["计费重量"] |
| |
| df=df["实示重量"].mean() |
| |
| df=df["实示重量"].sum() |
| |
| '''13.单列折分''' |
| |
| df = df['运单号(长)'].str.split(':', expand=True) |
| |
| def split_func(line): |
| line["运单号"], line["长"] = line["运单号(长)"].split(":") |
| return line |
| df = df.apply(split_func, axis=1) |
| |
| '''14.将NAN值变成0''' |
| df16 = df16.fillna(0) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库