4.2.2编程处理数据一轮复习考点知识清单-2024-2025学年浙教版(2019)高中信息技术必修一

2025-02-05
| 6页
| 499人阅读
| 3人下载
普通

内容正文:

pandas知识点整理 班级:___________ 姓名:______________ 1.pandas读取excel/csv文件: import pandas as pd df = pd.read_excel("gzb.xlsx")df.columns df = pd.read_csv("gzb.csv") #根据文件后缀名选取合适函数 df.index df.values 2. 读取文件中的列标题 语句 print(df.columns) 结果 一般考察时,会使用for循环来遍历列标题 语句 for i in df.columns: print(i) 结果 读取单个列的值:df.列标题/df["列标题"] 语句 print(df.姓名) #属性法 print(df["姓名"]) #字典法 结果 3. 读取文件中的行索引 语句 print(df.index) 结果 4. 读取文件中的某单元格的值 df.at[行索引,"列标题"] 或 df["列标题"][行索引] 或 df.列标题[行索引] 语句 print(df.at[2,"出勤天数"]) 或 df["出勤天数"][2] 或 df.出勤天数[2] 结果 22 索引单元格的值可能是为了修改某单元格的值。 如:df.at[1,"出勤天数"]=25,将稻小壳2的出勤天数修改为25 5. 筛选出符合条件的记录 对象名[对象名.列标题>=值] 或 对象名[对象名["列标题"]>=值] # >=可以换成其它关系运算符,>、<、<=、==、in 语句 df.出勤天数>=15 #条件 df[df.出勤天数>=15] #筛选条件 结果 6. 返回前几项( head() )或后几项( tail() ) 对象名.head()/对象名.tail() #head和tail括号内不加参数默认返回5行 df2=df.head(11) #获得df对象中的前11行,并存储到df2中 df3=df.tail(4) #获得df对象中的后4行,并存储到df3中 7. 插入函数 (1) 插入行 df3=df.append({"序号":16,"姓名":"小蒋","部门":"部门1"},ignore_index=True) append()添加到DataFrame对象的最后一行,ignore_index是指忽视其本身的索引号,如这条记录就一条,添加前索引号应该是0,添加进去之后和df中的第一行记录的索引号冲突了。ignore_index=True就会采用df对象的索引号继续自动生成,所以索引号为15 (2) 插入列 ①对象名.insert(列索引号,"列标题",数据) 如:df.insert(7,"应发合计",df.基本工资+df.奖金) #在第7列(从0开始数)插入数据列,标题为“应发合计”,值为基本工资列和奖金列的和 #insert函数是个动作函数,不用赋值给新对象 ②对象名["列标题"]=数据 如:df["应发合计"]=df.基本工资+df.奖金 #“应发合计”列不存在,直接索引并赋值,那么默认在最后一列添加,而append可以指定位置 思考:如果想插入扣款总金额,语句该如何写?(扣款总金额=五险一金+考勤扣款+其他扣款) (答案请看资料最后) 8. 分组函数 新对象=对象名.groupby("列标题",as_index=True/False) ① df2=df.groupby("部门",as_index=True).sum() #相同部门分为一组,并以组为单位进行求和 #as_index=True即将"部门"列替代原来的index列(就是0,1,2,3,4...这一列),如图第一列所示 ② df2=df.groupby("部门",as_index=False).sum() #as_index=False,不将“部门”列作为index列,即维持原来的index列 思考:如何在两种不同分组结果的基础上,处理以下数据(答案请看资料最后) ①用pandas的plot函数绘制各部门总奖金的柱状图(假设模块均已导入) 第一种分组:____________________________________________________________________ 第二种分组:____________________________________________________________________ ②用maltplotlib绘制各部门总奖金的柱状图(假设模块均已导入) 第一种分组:____________________________________________________________________ 第二种分组:____________________________________________________________________ ③用两种方式获取部门6的奖金值(at方式和直接索引方式) 第一种分组:____________________________________________________________________ 第二种分组:____________________________________________________________________ 分组后索引单列求值: df2=df.groupby("部门",as_index=False)["奖金"].sum() df2=df.groupby("部门",as_index=True)["奖金"].sum() 9. 排序函数 新对象名=对象名.sort_values("列标题",ascending=True/False) ascending参数用来描述排序后的对象是升序还是降序,默认值为True,升序 如:df1=df.sort_values("部门",ascending=True) #按照”部门”列升序排序 10. 涉及计算的函数: 函数 作用 sum() 求每个单元格中值的和 mean() 求每个单元格中值的平均值 max() 求每个单元格中值的最大值 min() 求每个单元格中值的最小值 count() 求非空单元格的个数/求非空数据项 count()和sum()的区别 df.count() #统计个数 df.sum() #数据相加求和,字符串拼接 axis=0:以行为单位计算统计值,第一行+第二行+第三行+...=最后一行的结果 axis=1:以列为单位计算统计值,第一列+第二列+第三列+...=最后一列的结果 df3=df.sum() #默认axis=0 print(df3) df3=df.sum(axis=1) #当相加的值之间既有字符串又有数字,就忽略掉字符,直接数字相加 print(df3) 11. 删除函数 ①drop函数 (df.drop(),df对象中的数据不被删除,需将删除后结果保存在新对象中) 作用 删除列 (axis=1) 删除行 (axis=0) 函数 新对象=对象名.drop("列标题",axis=1) 新对象=对象名.drop(行索引,axis=0) 举例 df3=df.drop("序号",axis=1) #注意列必须写列标题,df3中是删除后的内容 df3=df.drop(1,axis=0) #注意行要写行索引号,df中的内容没有删除 结果 ②del函数 del df["列标题"] #df对象中的列会被删除 del df["序号"] #删除df对象中的”序号”列,不用赋值,df中的内容会删除,与drop()不同 12. 修改列名或者索引 修改列名:df2=df.rename({"基本工资":"基础工资"}) 或 修改列名:df2=df.rename(columns={"基本工资":"基础工资"}) 修改索引:df2=df.rename({0:1}) # 修改前:修改后 13. matplotlib模块绘图(import matplotlib.pyplot as plt) 功能 函数 结果 绘制线型图 plt.plot() plt.plot(df.姓名,df.基本工资) #将df中的姓名列作为横坐标,基本工资列作为纵坐标, 绘制线型图 绘制垂直柱形图 plt.bar() plt.bar(df.姓名,df.基本工资) 绘制水平柱形图 plt.barh() plt.barh(df.姓名,df.基本工资) 绘制散点图 plt.scatter() plt.scatter(df.姓名,df.基本工资) 绘制图标的标题 plt.title() plt.title("基本工资情况表") 显示图例 plt.legend() #没有参数 plt.barh(df.姓名,df.基本工资,label="基本工资") #label设置图例内容为“基本工资”,每个图表均可设置 plt.title("基本工资情况表") plt.legend() #书写后上述label的值才可以显示 显示创建的所有绘图对象 plt.show() #没有参数 上述图表的程序最后一行都需要书写plt.show(),右侧的图表才会显示出来 答案: 第7题(2) 思考:如果想插入扣款总金额,语句该如何写?(扣款总金额=五险一金+考勤扣款+其他扣款) df["扣款总金额"]=df["五险一金"]+df["考勤扣款"]+df["其他扣款"] 或者 df.扣款总金额=df.五险一金+df.考勤扣款+df.其他扣款 或者 df.insert(11,"扣款总金额",df.五险一金+df.考勤扣款+df.其他扣款) #在"应发合计"列的前一列添加"扣款总金额"列 第8题思考题: ①用pandas的plot函数绘制各部门总奖金的柱状图(假设模块均已导入) 第一种分组(as_index=True):df2["奖金"].plot(kind="bar") #df2的index是部门列,现在再索引奖金列,所以横坐标是部门,纵坐标是奖金 #kind表示图表类型,bar指柱状图 #kind="line"表示线型图 第二种分组(as_index=False):df2.plot("部门" , "奖金" , kind="bar") #以部门列和奖金列为坐标轴绘制柱状图 拓展:df2.plot(x="部门",y=["奖金","五险一金"],kind="line") #绘制两个折线,所以y轴有两列数据 ②(显示图表效果一致) 用maltplotlib绘制各部门总奖金的柱状图(假设模块均已导入) 第一种分组(as_index=True):plt.bar(df2.index , df2.奖金) #注意此时"部门"列已经不存在了,是index列 第二种分组(as_index=False):plt.bar(df2.部门 , df2.奖金) #matplotlib中的绘图函数在绘图时,如果需要图例,需要书写label="XXX" ③用两种方式获取部门6的奖金值(at方式和直接索引方式) 第一种分组(as_index=True): df2.at["部门6","奖金"] 或 df2["奖金"][5] #df2.at[行索引,列索引],行索引现在是部门,所以带引号,为字符串 #或者先索引出奖金列,再或者这个列表中的第六个值,也就是索引值为5的值 第二种分组(as_index=False): df2.at[5 ,"奖金"] 或 df2["奖金"][5] #这时候index列还是[0,1,2,3,4,5...],所以df2.at[5 ,"奖金"] 学科网(北京)股份有限公司 $$

资源预览图

4.2.2编程处理数据一轮复习考点知识清单-2024-2025学年浙教版(2019)高中信息技术必修一
1
4.2.2编程处理数据一轮复习考点知识清单-2024-2025学年浙教版(2019)高中信息技术必修一
2
4.2.2编程处理数据一轮复习考点知识清单-2024-2025学年浙教版(2019)高中信息技术必修一
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。