zoukankan      html  css  js  c++  java
  • python处理execl

    一、处理文件和文件夹的模块---os模块

      os模块是python和操作系统进行交互的一个接口,它提供了许多操作文件及文件夹的函数。

    1.1  getcwd()函数:当前运行的python代码文件路径

        import os

           path=os.getcwd()

           print(path)

    结果:C:UsersdjwPycharmProjectsuntitled1

    1.2   listdir()函数:查看某个文件夹下的文件和子文件夹

         import os

          path='d:\linux'

          file_list=os.listdir(path)

          print(file_list)

    结果:['dafd.txt', 'linuxvr_1', 'linuxvr_2', 'linuxvr_3', 'linuxvr_4', 'workstation', 'workstations']---列表

    1.3 splitext()函数:分离文件主名和扩展名  

           import os
      paths="djw.txt"
      split=os.path.splitext(paths)
      print(split)

    结果:('djw', '.txt') --元组

    1.4 rename()函数:重命名文件和文件夹

      import os
      oldname='d:\linuxdjw.txt'  
      newname='d:\djwdjw123.txt'
      os.rename(oldname,newname)  ---将文件移动到djw文件夹下,并重新命名djw123.txt

    结果:移动成功

    二、批量处理Excel文件的模块---xlwings模块

            

    2.1创建工作薄   

            import xlwings as xw
            app=xw.App(visible=True,add_book=False)
           workbook=app.books.add()

    2.2保存工作薄 

      import xlwings as xw
      app=xw.App(visible=True,add_book=False)
      workbook=app.books.add()
      workbook.save('C:\UsersdjwDesktop文件1.xlsx')
      workbook.close()
      app.quit()

    2.3打开工作薄  

      import xlwings as xw
      app=xw.App(visible=True,add_book=False)
      workbook=app.books.open('C:\UsersdjwDesktop文件1.xlsx')

    2.4操控工作表和单元格 

         import xlwings as xw
           app=xw.App(visible=True,add_book=False)

           workbook=app.books.open('C:\UsersdjwDesktop文件1.xlsx')
           worksheet=workbook.sheets['Sheet1']
           worksheet.range('c4').value="党京伟"
          worksheet=workbook.sheets.add('二月')

    三、数字计算的数学模型--NumPy模块

      主要用来计算数组.

    3.1创建数组array函数

      import numpy as np

      a =np.array([1,2,3,4])

      b=np.array([1,2],[3,4],[4,5])

      print(a[0:3])  遵循“左闭右开”原则

    3.2创建数组arange函数

      import numpy as np

      x=np.arange(5)

      y=np.arange(2,5)

      z=np.arange(5,10,2)

    3.3随机创建数组,符合正态分布random.randn

      import numpy as np

      c=np.random.randn(3)

      print(c)

    3.4创建二维数组的另外一种方式arange和reshape函数

      import numpy as np

      d=np.arange(12).reshape(3,4)

    3.5随机创建整数random.randint

      import numpy as np

      e=np.random.randint(0,10,(4,4))

    四、数据导入和整理模块---pandas模块

      pandas模块提供了非常直观的数据结构及强大的数据管理和数据处理功能,擅长二维数据,主要是DataFrame数据结构。

    4.1二维数据表格DataFrame的创建

     4.1.1列表DataFrame

         import pandas as pd

      a=pd.DataFrame([[1,2],[3,4],[5,6]],columns=['date','score'],index=['A','B','C'])

       4.1.2字典DataFrame

      import pandas as pd

      b=pd.DataFrame({'a':[1,2,5],'b':[2,4,6]},index=['A','B','C'])

       4.1.3通过二维数组创建DataFrame

      import numpy as np

      import pandas as pd

      a=np.arange(12).reshape(3,4)

      b=pd.DataFrame(a,index=[1,2,4],columns=['A','B','C','D'])

    4.2文件的读写

      读xlsx:pd.read_excel('data.xlsx',sheetname=0,encoding='utf-8')  #sheetname指定工作表,可以是名称,默认是数字0

      读csv :  pd.read_csv('data.csv',delimiter=',',encoding='utf-8') #delimiter是分隔符

      写入:

      import pandas as pd

      data=pd.DataFrame([[1,2],[3,4],[5,6]], columns=['A列',‘B列’]) #创建一个DataFrame

      data.to_execl('data.xlsx')

      data.to_csv('data.csv')

    4.3按列、行选择数据

      c=data[['c1','c2']]  //c1,c2表示两列

      c=data.iloc[1:3] //表示行号用iloc

      c=data.loc[['r2','r3']] //表示列名称选择

      c=data.head(5)//选择前5行

    4.4按区块选取数据

      c=data.iloc[0:2][['c1','c3']] 

      c=data.iloc[['r1','r2'],['c1','c2']]

      c=data.loc[['r1','r2'],['c1','c3']]

    4.5数据的排序

      a=data.sort_values(by='c2',assending=False)  //按列排序

      a=a.sort_index() //按行索引排序

    4.6数据的删除

      data.drop(index=['r1','r3'],inplace=True)

    4.7数据表的拼接

      merge()函数:可以根据一个或多个同名的列将不同数据表中的行连接起来。

      df3=pd.merge(df1,df2,on='公司') //相同的列名

      df3=pd.merge(df1,df2,how='outer') //取并集

      df3=pd.merge(df1,df2,how="left")  //取左边完整

      df3=pd.merge(df1,df2,left_index=True,right_index=True)

      concat()函数:concat()函数使用全连接(UNION all)方式完成拼接。

      df3=pd.concat([df1,df2],ignore_index=True)  //行拼接

      df3=pd.concat([df1,df2],axis=1) //列拼接

           append()函数:可以看做是concat()函数的简化版

      df3=df1.append({'公司':‘腾飞’,‘分数’: '90'},ignore_index=True)

    五、数据可视化模块--Matplotlib

      Matplotlib是一个非常出色的数据可视化模块,其导入代码通常写成import matplotlib.pyplot as plt,之后以plt为前缀调用函数即可绘制图表。

    5.1 绘制折线图

      

     5.2 绘制柱形图

      

     六、模块之间的交互

      xlwings模块可以与pandas模块进行交互,用pandas模块创建数据表格,再用xlwings模块将表格写入工作薄。

    import xlwings as xw
    import pandas as pd
    app=xw.App(visible=False)
    workbook=app.books.add()
    worksheet=workbook.sheets.add('新的工作目录')
    df=pd.DataFrame([[1,2],[3,4]],columns=['a','b'])
    worksheet.range('A1').value=df
    workbook.save(r'e:djw.xlsx')
    workbook.close()
    app.quit()
    xlwings模块可以与matplotlib模块进行交互,用matplotlib模块绘制图表,在用xlwings模块将图表写入工作薄中
    import  xlwings as xw
    import matplotlib.pyplot as plt
    figure=plt.figure()
    x=[1,2,3,4,5]
    y=[6,7,8,9,10]
    plt.plot(x,y)
    app=xw.App(visible=True)
    workbook=app.books.add()
    worksheet=workbook.sheets.add('djw')
    worksheet.pictures.add(figure,name="a",update=True,left=100)
    workbook.save(r'e:djw1.xlsx')
    workbook.close()
    app.quit()
  • 相关阅读:
    mysql 历史版本下载
    mysql 5.7 版本 You must reset your password using ALTER USER statement before executing this statement报错处理
    5.7 zip 版本的安装 以及遇到的坑
    mysql 5.6zip版本的卸载与5.7 zip 版本的安装
    mysql数据库的备份与还原
    本地Navicat连接docker里的mysql
    docker修改数据库密码
    docker 在push镜像到本地registry出现的500 Internal Server Error
    linux 没有界面内容显示不全解决办法
    json与map互相转换
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/14419476.html
Copyright © 2011-2022 走看看