pandas数据分析

#先要检查配置环境

pip show numpy/pandas/matplotlib

一、pandas数据分析

Pandas是一种基于Numpy的开源的数据分析包,提供了高性能、简单易用的数据结构和数据分析函数。

1、Series对象

(1)定义和创建
(2)数据访问
(3)常用方法
(1)定义和创建
Series对象是一种带有标签数据的一维数据,标签在Pandas中有对应的数据类型“Index”,Series类似于一维数组与字典的结合

 

2、DataFrame对象

(1)定义与创造

 DataFrame可以看作是一种既有行索引,又有列索引的二维数组,类似于Excel表或关系型数据库中的二维表,是Pandas中最常用的基本结构

(2)数据访问

(3)常用方法

(4)常见操作

(1)Pandas中的缺失值处理

(2)Pandas中的分组操作

(3)Pandas中的数据合并操作

names = ['aa','cc','dd','ff','ee']
ages = [54,98,65,32,21]
nums = [11,22,33,44,66]
s_1 = pd.Series(names)
s_2 = pd.Series(ages)
#print(s_1)        #将数据输出到客服端
#print()
s_2 #直接从内容中读取数据,没有对外输出,会被后面的输出数据覆盖

print(pd.DataFrame({'学号':nums,'姓名':s_1,'年龄':s_2})) #用Series对象创建DataFrame对象
data_2 = pd.DataFrame({'学号':nums,'姓名':names,'年龄':ages},index = list('abcde'))#用数组创建
data_2
   学号  姓名  年龄
0  11  aa  54
1  22  cc  98
2  33  dd  65
3  44  ff  32
4  66  ee  21

Out[49]:

学号姓名年龄
a11aa54
b22cc98
c33dd65
d44ff32
e66ee21
#导入库
import numpy as up
import pandas as pd
import matplotlib.pyplot as plt
#1.使用Pandas读取两个表格数据,并将其根据姓名进行合并
data_1 = pd.read_excel('../Stu_pack/pandas/exer_1.xlsx',skiprows = 1) #读取文件数据
data_2 = pd.read_excel('../Stu_pack/pandas/exer_2.xlsx',skiprows = 1)
data_1
data_2

data_3 = pd.merge(data_1,data_2) #根据相同列名合并数据
data_3
姓名性别班级语文数学英语总分
0Aa2班837898259
1Bb3班679356216
2Cc3班598686231
3Dd3班756059194
4Ee3班818179241
5Ff1班686795230
6Gg1班618075216
7Hh1班897096255
8Ii3班625590207
9Jj3班689194253
10Kk2班867751214
11Ll1班887278238
12Mm2班859159235
13Nn3班806576221
14Oo3班709668234
15Pp1班767898252
16Qq1班786867213
17Rr1班786867213
18Ss2班775190218
19Tt3班679899264
20Uu3班686778213
21Vv3班987751226
22Ww3班775189217
23Xx1班898967245
24Yy1班775156184
25Zz2班566867191
#2.实现接总分 或 语文、数学、英语单科从高到低排序功能:
def sort(df,col):
    ss = df.sort_values(by = col,ascending = False)     
               #将DataFrame对象df按照某列的数据值排序,默认为升序,将ascending设置为False降序(从高到低)
    return ss
    
col = input('请输入您要排序的列名:')
sort(data_3,col)  #调用函数,将实参传递给形参

 

请输入您要排序的列名:总分

Out[75]:

姓名性别班级语文数学英语总分
19Tt3班679899264
0Aa2班837898259
7Hh1班897096255
9Jj3班689194253
15Pp1班767898252
23Xx1班898967245
4Ee3班818179241
11Ll1班887278238
12Mm2班859159235
14Oo3班709668234
2Cc3班598686231
5Ff1班686795230
21Vv3班987751226
13Nn3班806576221
18Ss2班775190218
22Ww3班775189217
1Bb3班679356216
6Gg1班618075216
10Kk2班867751214
16Qq1班786867213
17Rr1班786867213
20Uu3班686778213
8Ii3班625590207
3Dd3班756059194
25Zz2班566867191
24Yy1班775156184
#3.打印所有存在不及格科目(单科<60)的学生记录:
data_3[(data_3['语文']<60) | (data_3['数学']<60) | (data_3['英语']<60)]
姓名性别班级语文数学英语总分
1Bb3班679356216
2Cc3班598686231
3Dd3班756059194
8Ii3班625590207
10Kk2班867751214
12Mm2班859159235
18Ss2班775190218
21Vv3班987751226
22Ww3班775189217
24Yy1班775156184
25Zz2班566867191
#4.获取指定科目的最高分、最低分以及平均分:
def get_course(df,col):
    mm = np.max(df[col]) #求最高分
    nn = np.min(df[col]) #求最低分
    cc = np.mean(df[col])#求平均分
    return '科目为:{},最高分为:{},最低分为:{},平均分为:{:.2f}'.format(col,mm,nn,cc)

col = input('请输入您要查找的科目:')
get_course(data_3,col)
请输入您要查找的科目:总分

Out[80]:

'科目为:总分,最高分为:264,最低分为:184,平均分为:226.15'

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值