收藏 分销(赏)

中小学pandas2(教师)公开课教案教学设计课件案例测试练习卷题.docx

上传人:w****g 文档编号:5782002 上传时间:2024-11-19 格式:DOCX 页数:13 大小:132.61KB 下载积分:8 金币
下载 相关 举报
中小学pandas2(教师)公开课教案教学设计课件案例测试练习卷题.docx_第1页
第1页 / 共13页
中小学pandas2(教师)公开课教案教学设计课件案例测试练习卷题.docx_第2页
第2页 / 共13页


点击查看更多>>
资源描述
pandas 3:DataFrame常用函数 表4.2.3 DataFrame 常用函数函数 一、 计算 功能:对DataFrame进行计算 ①已知DataFrame代码如下: 代码 结果 import pandas as pd data ={"姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37]} df1=pd.DataFrame(data,columns=["姓名","性别","借阅次数"]) print(df1) 姓名 性别 借阅次数 0 王静怡 女 28 1 张佳妮 女 58 2 李臣武 男 37 ②axis=0或空表示列,axis=1表示行。 ③在执行例7、例9、例10、例11、例15、例19时,TypeError警告并自动忽略掉错误类型的数据。 函数 序号 代码 运行结果 说明 count() 例1 print(df1.count()) 姓名 3 性别 3 借阅次数 3 dtype: int64 空参数表示列 例2 print(df1.count(axis=0)) 姓名 3 性别 3 借阅次数 3 dtype: int64 axis=0表示列 例3 print(df1.count(axis=1)) 0 3 1 3 2 3 dtype: int64 axis=1表示行 例4 print(df1["姓名"].count( )) 3 索引计数 等价于print(df1.姓名.count( )) sum() 例5 print(df1.sum()) 姓名 王静怡张佳妮李臣武 性别 女女男 借阅次数 123 dtype: object 空参数表示列 例6 print(df1.sum(axis=0)) 姓名 王静怡张佳妮李臣武 性别 女女男 借阅次数 123 dtype: object axis=0表示列 例7 print(df1.sum(axis=1)) 0 28 1 58 2 37 dtype: int64 axis=1表示行 TypeError警告 例8 print(df1["借阅次数"].sum()) 123 索引求和 等价于print(df1.借阅次数.sum()) mean( ) 例9 print(df1.mean()) 借阅次数 41.0 dtype: float64 空参数表示列 TypeError警告 例10 print(df1.mean(axis=0)) 借阅次数 41.0 dtype: float64 axis=0表示列 TypeError警告 例11 print(df1.mean(axis=1)) 0 28.0 1 58.0 2 37.0 dtype: float64 axis=1表示行 TypeError警告 例12 print(df1["借阅次数"].mean()) 41.0 索引求平均 等价于print(df1.借阅次数.mean()) max( ) 例13 print(df1.max()) 姓名 王静怡 性别 男 借阅次数 58 dtype: object 空参数表示列 例14 print(df1.max(axis=0)) 姓名 王静怡 性别 男 借阅次数 58 dtype: object axis=0表示列 例15 print(df1.max(axis=1)) 0 28 1 58 2 37 dtype: int64 axis=1表示行 TypeError警告 例16 print(df1["借阅次数"].max()) 58 索引求最大 等价于print(df1.借阅次数.max()) min( ) 例17 print(df1.min()) 姓名 张佳妮 性别 女 借阅次数 28 dtype: object 空参数表示列 例18 print(df1.min(axis=0)) 姓名 张佳妮 性别 女 借阅次数 28 dtype: object axis=0表示列 例19 print(df1.min(axis=1)) 0 28 1 58 2 37 dtype: int64 axis=1表示行 TypeError警告 例20 print(df1["借阅次数"].min()) 28 索引求最小 等价于print(df1.借阅次数.min()) 二、 查看信息 1. describe( )函数: 功能:使用describe( )函数对DataFrame进行查看信息 序号 代码 运行结果 说明 例1 import pandas as pd data ={ "借阅次数":[28,58,37], "年龄":[17,15,16] } df1=pd.DataFrame(data) print(df1) print("——我是分割线——") print(df1.describe()) 借阅次数 年龄 0 28 17 1 58 15 2 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 可计算的数据 例2 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"] } df2=pd.DataFrame(data) print(df2) print("——我是分割线——") print(df2.describe()) 姓名 性别 0 王静怡 女 1 张佳妮 女 2 李臣武 男 ——我是分割线—— 姓名 性别 count 3 3 unique 3 2 top 王静怡 女 freq 1 2 不可计算的数据 例3 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df3=pd.DataFrame(data) print(df3) print("——我是分割线——") print(df3.describe()) 姓名 性别 借阅次数 年龄 0 王静怡 女 28 17 1 张佳妮 女 58 15 2 李臣武 男 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 混合 例4 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df4=pd.DataFrame(data) print(df4) print("——我是分割线——") print(df4.年龄.describe()) 姓名 年龄 0 王静怡 17 1 张佳妮 15 2 李臣武 16 ——我是分割线—— count 3.0 mean 16.0 std 1.0 min 15.0 25% 15.5 50% 16.0 75% 16.5 max 17.0 Name: 年龄, dtype: float64 索引 2.head()函数: 功能:使用head()函数对DataFrame进行查看信息 序号 代码 运行结果 说明 例1 import pandas as pd data ={ "借阅次数":[28,58,37], "年龄":[17,15,16] } df1=pd.DataFrame(data) print(df1) print("——我是分割线——") print(df1.describe()) 借阅次数 年龄 0 28 17 1 58 15 2 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 可计算数据 例2 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"] } df2=pd.DataFrame(data) print(df2) print("——我是分割线——") print(df2.describe()) 姓名 性别 0 王静怡 女 1 张佳妮 女 2 李臣武 男 ——我是分割线—— 姓名 性别 count 3 3 unique 3 2 top 王静怡 女 freq 1 2 不可计算数据 例3 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df3=pd.DataFrame(data) print(df3) print("——我是分割线——") print(df3.describe()) 姓名 性别 借阅次数 年龄 0 王静怡 女 28 17 1 张佳妮 女 58 15 2 李臣武 男 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 混合 例4 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df4=pd.DataFrame(data) print(df4) print("——我是分割线——") print(df4.年龄.describe()) 姓名 年龄 0 王静怡 17 1 张佳妮 15 2 李臣武 16 ——我是分割线—— count 3.0 mean 16.0 std 1.0 min 15.0 25% 15.5 50% 16.0 75% 16.5 max 17.0 Name: 年龄, dtype: float64 索引 例5 import pandas as pd data ={ "姓名":["刘一","陈二","张三","李四","王五","赵六","孙七"], "年龄":[11,22,33,44,55,66,77] } df5=pd.DataFrame(data) print(df5) print("——以上是df5——") print(df5.head()) print("——以上是df5.head()——") print(df5.head(3)) print("——以上是df5.head(3)——") print(df5.head(-3)) print("——以上是df5.head(-3)——") print(df5.姓名.head(-3)) print("——以上是df5.姓名.head(-3)——") 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df5—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 ——以上是df5.head()—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 ——以上是df5.head(3)—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 ——以上是df5.head(-3)—— 0 刘一 1 陈二 2 张三 3 李四 Name: 姓名, dtype: object ——以上是df5.姓名.head(-3)—— df5[0:5] 例6 import pandas as pd data ={ "姓名":["刘一","陈二","张三","李四","王五","赵六","孙七"], "年龄":[11,22,33,44,55,66,77] } df6=pd.DataFrame(data) print(df6) print("——以上是df6——") print(df6.tail()) print("——以上是df6.tail()——") print(df6.tail(3)) print("——以上是df6.tail(3)——") print(df6.tail(-3)) print("——以上是df6.tail(-3)——") print(df6.姓名.tail(-3)) print("——以上是df6.姓名.tail(-3)——") 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6—— 姓名 年龄 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail()—— 姓名 年龄 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail(3)—— 姓名 年龄 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail(-3)—— 3 李四 4 王五 5 赵六 6 孙七 Name: 姓名, dtype: object ——以上是df6.姓名.tail(-3)—— 3.tail()函数: 功能:对DataFrame进行查看信息 功能:使用tail()函数对DataFrame进行查看信息 序号 代码 运行结果 说明 例1 import pandas as pd data ={ "借阅次数":[28,58,37], "年龄":[17,15,16] } df1=pd.DataFrame(data) print(df1) print("——我是分割线——") print(df1.describe()) 借阅次数 年龄 0 28 17 1 58 15 2 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 可计算数据 例2 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"] } df2=pd.DataFrame(data) print(df2) print("——我是分割线——") print(df2.describe()) 姓名 性别 0 王静怡 女 1 张佳妮 女 2 李臣武 男 ——我是分割线—— 姓名 性别 count 3 3 unique 3 2 top 王静怡 女 freq 1 2 不可计算数据 例3 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df3=pd.DataFrame(data) print(df3) print("——我是分割线——") print(df3.describe()) 姓名 性别 借阅次数 年龄 0 王静怡 女 28 17 1 张佳妮 女 58 15 2 李臣武 男 37 16 ——我是分割线—— 借阅次数 年龄 count 3.000000 3.0 mean 41.000000 16.0 std 15.394804 1.0 min 28.000000 15.0 25% 32.500000 15.5 50% 37.000000 16.0 75% 47.500000 16.5 max 58.000000 17.0 混合 例4 import pandas as pd data ={ "姓名":["王静怡","张佳妮","李臣武"], "性别":["女","女","男"], "借阅次数":[28,58,37], "年龄":[17,15,16] } df4=pd.DataFrame(data) print(df4) print("——我是分割线——") print(df4.年龄.describe()) 姓名 年龄 0 王静怡 17 1 张佳妮 15 2 李臣武 16 ——我是分割线—— count 3.0 mean 16.0 std 1.0 min 15.0 25% 15.5 50% 16.0 75% 16.5 max 17.0 Name: 年龄, dtype: float64 索引 例5 import pandas as pd data ={ "姓名":["刘一","陈二","张三","李四","王五","赵六","孙七"], "年龄":[11,22,33,44,55,66,77] } df5=pd.DataFrame(data) print(df5) print("——以上是df5——") print(df5.head()) print("——以上是df5.head()——") print(df5.head(3)) print("——以上是df5.head(3)——") print(df5.head(-3)) print("——以上是df5.head(-3)——") print(df5.姓名.head(-3)) print("——以上是df5.姓名.head(-3)——") 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df5—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 ——以上是df5.head()—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 ——以上是df5.head(3)—— 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 ——以上是df5.head(-3)—— 0 刘一 1 陈二 2 张三 3 李四 Name: 姓名, dtype: object ——以上是df5.姓名.head(-3)—— 等价于 df5[0:7] 等价于 df5[0:5] 等价于 df5[0:3] 等价于 df5[0:4] 等价于 df5["姓名"][0:4] 也等价于 df5.姓名[0:4] 例6 import pandas as pd data ={ "姓名":["刘一","陈二","张三","李四","王五","赵六","孙七"], "年龄":[11,22,33,44,55,66,77]} df6=pd.DataFrame(data) print(df6) print("——以上是df6——") print(df6.tail()) print("——以上是df6.tail()——") print(df6.tail(3)) print("——以上是df6.tail(3)——") print(df6.tail(-3)) print("——以上是df6.tail(-3)——") print(df6.姓名.tail(-3)) print("——以上是df6.姓名.tail(-3)——") 姓名 年龄 0 刘一 11 1 陈二 22 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6—— 姓名 年龄 2 张三 33 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail()—— 姓名 年龄 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail(3)—— 姓名 年龄 3 李四 44 4 王五 55 5 赵六 66 6 孙七 77 ——以上是df6.tail(-3)—— 3 李四 4 王五 5 赵六 6 孙七 Name: 姓名, dtype: object ——以上是df6.姓名.tail(-3)—— 等价于 df6[0:7] 等价于 df6[2:7] 等价于 df6[4:7] 等价于 df6[3:] 等价于 df6.姓名[3:] 三、 分组排序 1. 分组。数据分组是指,根据一个或多个键(函数、数组、df列名)将数据分成若干组,然后对分组后数据分别进行汇总计算,然后将计算结果进行合并。数据分组常使用groupby()函数。 1.1 groupby( ) 功能:使用groupby( )函数对以上DataFrame进行分组 序号 代码 结果 说明 例1 import pandas as pd data ={ "键":["A","B","C","A","B","C","A","B","C"], "数值":[1,3,5,7,9,2,4,6,8], "标记":[1,0,1,0,1,0,1,0,1], "级别":["优","及","优","良","良","优","优","优","良"] } df=pd.DataFrame(data) print(df) print("——以上df——") print(df.groupby("键").count()) print("——以上按键分组并计数——") print(df.groupby("键").sum()) print("——以上按键分组并求和——") print(df.groupby(["键","标记"]).count()) print("——以上按键、标记分组并计数——") print(df.groupby(["键","标记"]).sum()) print("——以上按键、标记分组并求和——") print(df.groupby("键")["标记"].count()) print("——以上按键分组,然后对标记计数") print(df.groupby("键")["标记"].sum()) print("——以上按键分组,然后对标记求和") print(df.groupby(df["键"]).count()) print("——以上用series按键分组并计数") print(df.groupby(df["键"]).sum()) print("——以上用series按键分组并求和") 键 数值 标记 级别 0 A 1 1 优 1 B 3 0 及 2 C 5 1 优 3 A 7 0 良 4 B 9 1 良 5 C 2 0 优 6 A 4 1 优 7 B 6 0 优 8 C 8 1 良 ——以上df—— 数值 标记 级别 键 A 3 3 3 B 3 3 3 C 3 3 3 ——以上按键分组并计数—— 数值 标记 键 A 12 2 B 18 1 C 15 2 ——以上按键分组并求和—— 数值 级别 键 标记 A 0 1 1 1 2 2 B 0 2 2 1 1 1 C 0 1 1 1 2 2 ——以上按键、标记分组并计数—— 数值 键 标记 A 0 7 1 5 B 0 9 1 9 C 0 2 1 13 ——以上按键、标记分组并求和—— 键 A 3 B 3 C 3 Name: 标记, dtype: int64 ——以上按键分组,然后对标记计数 键 A 2 B 1 C 2 Name: 标记, dtype: int64 ——以上按键分组,然后对标记求和 数值 标记 级别 键 A 3 3 3 B 3 3 3 C 3 3 3 ——以上用series按键分组并计数 数值 标记 键 A 12 2 B 18 1 C 15 2 ——以上用series按键分组并求和 按 列 分 组 例2 import pandas as pd data ={ "键":["A","B","C","A","B","C","A","B","C"], "数值":[1,3,5,7,9,2,4,6,8] } df=pd.DataFrame(data) print(df) print("——以上df——") print(df.groupby("键").count()) print("——以上使用as_index空参数——") print(df.groupby("键",as_index=True).count()) print("——以上使用as_index=True——") print(df.groupby("键",as_index=False).count()) print("——以上使用as_index=False——") 键 数值 0 A 1 1 B 3 2 C 5 3 A 7 4 B 9 5 C 2 6 A 4 7 B 6 8 C 8 ——以上df—— 数值 键 A 3 B 3 C 3 ——以上使用as_index空参数—— 数值 键 A 3 B 3 C 3 ——以上使用as_index=True—— 键 数值 0 A 3 1 B 3 2 C 3 ——以上使用as_index=False—— 设置as_index 2. 排序。DataFrame 对象中,按索引排序可以使用 sort _ index ()函数,按值排序可以使用 sort values ()函数。通过选项 axis =0/1确定排序的轴向,axis 默认值为0,纵向排序;通过选项 ascending = True / False 确定升/降序, ascending 默认值为 True ,升序排序。排序结果返回一个新 DataFrame 对象。 2.1 sort _ values( )函数 功能:用sort _ values( )函数对DataFrame进行排序 序号 代码 运行结果 说明 例3 import pandas as pd data={ '列1': ['A', 'A', 'B', 'c','D', 'C'], '列2': ['a', 'B', 'c', 'D', 'e', 'F'] } df = pd.DataFrame(data) print(df) print("——以上是df——") print(df.sort_values("列2")) print("——以上是df.sort_values(\"列2\")——") print(df.sort_values("列2",axis=0)) print("——以上是df.sort_values(\"列2\",axis=0))——") print(df.sort_values(3,axis=1)) print("——以上是df.sort_values(3,axis=1))") print(df.sort_values("列2",ascending=True)) print("——以上是df.sort_values(\"列2\",ascending=True))") print(df.sort_values("列2",ascending=False)) print("——以上是df.sort_values(\"列2\",ascending=False))") print(df) print("——以上是df——") 列1 列2 0 A a 1 A B 2 B c 3 c D 4 D e 5 C F ——以上是df—— 列1 列2 1 A B 3 c D 5 C F 0 A a 2 B c 4 D e ——以上是df.sort_values("列2")—— 列1 列2 1 A B 3 c D 5 C F 0 A a 2 B c 4 D e ——以上是df.sort_values("列2",axis=0))—— 列2 列1 0 a A 1 B A 2 c B 3 D c 4 e D 5 F C ——以上是df.sort_values(3,axis=1)) 列1 列2 1 A B 3 c D 5 C F 0 A a 2 B c 4 D e ——以上是df.sort_values("列2",ascending=True)) 列1 列2
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服