一、处理文件和文件夹的模块---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()