pandas简介

核心功能是在二维表格上做各种操作,如增删、修改、求一列数据的和、方差、中

位数、平均数等

需要numpy支持

如果有openpyxl(xlsx)或xlrd(xls)或xlwt(xls)支持,还可以读写excel文档。

最关键的类:DataFrame,表示二维表格

pip install pandas 安装

pandas重要类Series

Series一维表格,每个元素都有标签和下标,兼具字典和列表的访问形式

"""Series一维表格,每个元素都有标签和下标,兼具字典和列表的访问形式"""
s=pd.Series(data=[80,90,100],index=['语文','数学','英语']) #data是数值,index是行标签
for x in s: #遍历x中的元素print(x,end=" ") #输出结果80 90 100
print(" ")
print(s['语文'],s[1]) #s['语文']按标签取对应的值,s[1]按下标取对应的值类似列表 输出结果80 90
print(s[0:2]['数学']) #在列表中取0、1,然后取其中标签为数学的值 输出结果90
print(s['数学':'英语'][1]) #在列表中取标签从'数学'到'英语'的所有值,然后取下标为1的元素的值,输出结果100
for i in range(len(s.index)): #取标签的长度,遍历标签print(s.index[i],end=" ")  #输出结果语文 数学 英语
s['体育']=110 #在尾部添加一项体育,值110
s.pop('数学') #删除了数学标签和对应的值
s2=s.append(pd.Series(120,index=['政治'])) #在s的尾部追加政治 120生成新的数组s2 s2的值80 100 110 120
print(s2['语文'],s2['政治']) #在s2中取出语文和政治的值 输出结果 80 120
print(list(s2)) #将列表s2的值强制转化为列表  输出结果[80, 100, 110, 120]
print(s.sum(),s.min(),s.mean(),s.median()) #输出s的和,最小值,平均值,中位数 290 80 96.66666666666667 100.0
print(s.idxmax(),s.argmax()) #取index值最后的一个和下标值最大的一个 ,输出结果体育 2

DataFrame的构造和访问

DataFrame是带行列标签的二维表格,每一列都是一个Series

"""DataFrame的构造和访问"""
pd.set_option('display.unicode.east_asian_width',True) #输出数据对齐设置
scores=[['男',108,115,97],['女',115,87,105],['女',100,60,130],['男',112,80,50]] #定义数据体
names=['刘一哥','王二姐','张三妹','李四弟'] #定义行标签
coures=['性别','语文','数学','英语'] #定义列表标签
df=pd.DataFrame(data=scores,index=names,columns=coures) #构造二维数据
print(df) #打印构造的数据,输出结果如下
#       性别  语文  数学  英语
#刘一哥   男   108   115    97
#王二姐   女   115    87   105
#张三妹   女   100    60   130
#李四弟   男   112    80    50
print(df.values[0][1],type(df.values)) #查看数据体中第0行第1列的值,查看values的数据类型,输出结果108 <class 'numpy.ndarray'>
print(list(df.index)) #将行属性强制转化为列表输出,输出结果['刘一哥', '王二姐', '张三妹', '李四弟']
print(list(df.columns)) #将列属性强制转化为列表输出,输出结果['性别', '语文', '数学', '英语']
print(df.index[2],df.columns[2]) #取出下标为2的行标签和列标签,输出结果张三妹 数学
s1=df['语文'] #取出语文一列
print(s1['刘一哥'],s1[0]) #取出s1中刘一哥的语文成绩,取出数据体中标签为0的成绩,输出结果108 108
print(df['语文']['刘一哥']) #取出列标签为'语文',行标签'刘一哥'的成绩,只能先取列标签再取行标签,否则娶不到数据,输出结果108
s2=df.loc['王二姐']  #取出王二姐一整行的值
print(s2['性别'],s2['语文'],s2[2]) #取出s2的性别、语文标签的值,取出下标为2的数值,输出结果女 115 87

DataFrame的切片和统计

iloc[行选择器,列选择器] 用下标做切片

loc[行选择器,列选择器] 用标签做切片

DataFrame的切片是视图

print('---------DataFrame的切片------------------')
# df2=df.iloc[1:3]  用下标取df数据体的第1、2行数据,列没有指定,默认所有列
df2=df.loc['王二姐':'张三妹']  #用标签取,结果同上
print(df2) #输出结果如下
#       性别  语文  数学  英语
#王二姐   女   115    87   105
#张三妹   女   100    60   130
# df3=df.iloc[:,0:3] 用下标取df数据体的第0、1、2列数据,行没有指定,默认所有行
df3=df.loc[:,'性别':'数学'] #用标签取,结果同上
print(df3) #输出结果如下
#       性别  语文  数学
#刘一哥   男   108   115
#王二姐   女   115    87
#张三妹   女   100    60
#李四弟   男   112    80
# df4=df.iloc[:2,[1,3]]  用下标取df数据体的第0、1行,列取第1、3列
df4=df.loc[:'王二姐',['语文','英语']] #用标签取,结果同上
print(df4) #输出结果如下
#        语文  英语
#刘一哥   108    97
#王二姐   115   105
# df5=df.iloc[[1,3],2:4] 用下标取df数据体的第1、3行,列取第2、3列
df5=df.loc[['王二姐','李四弟'],'数学':'英语'] #用标签取,结果同上
print(df5) #输出结果如下
#        数学  英语
#王二姐    87   105
#李四弟    80    50

DataFrame的分析统计功能

print('---------下面是DataFrame的分析统计功能-------')
print(df.T) #把df的行列转置,输出结果如下
#     刘一哥 王二姐 张三妹 李四弟
#性别     男     女     女     男
#语文    108    115    100    112
#数学    115     87     60     80
#英语     97    105    130     50
print(df.sort_values('语文',ascending=True))  #将数据按语文成绩从低到高排列,输出结果如下
#       性别  语文  数学  英语
#张三妹   女   100    60   130
#刘一哥   男   108   115    97
#李四弟   男   112    80    50
#王二姐   女   115    87   105print(df.sum()['语文'],df.mean()['数学'],df.median()['英语']) #求语文的成绩和,数学的平均成绩,英语的成绩中位数,输出结果435 85.5 101.0
print(df.min()['语文'],df.max()['数学']) #求语文的最低分,数学的最高分,输出结果100 115
print(df.max(axis=1)['王二姐']) ##取['王二姐']各个科目的最大分数,输出结果115
print(df['语文'].idxmax()) #取语文这一列中值最大的行标签,输出结果王二姐
print(df['数学'].argmin())#取数学这一列中值最小的行号,输出结果2
print(df.loc[(df['语文']>100)&(df['数学']>=85)]) #取出语文成绩大于100且数学成绩大于等于85的记录,输出结果
#       性别  语文  数学  英语
#刘一哥   男   108   115    97

DataFrame的增删和修改

"""DataFrame的增删和修改"""
print('-------下面是DataFrame的增删和修改----------')
df.loc['王二姐','英语']=df.iloc[0,1]=150 #将'王二姐'的'英语'成绩改成150,将第0行第1列的值改成150
df['物理']=[80,70,90,100] #如果原来有物理这一列就改变原来的值,如果没有就新增物理这一列
df.insert(1,'体育',[89,77,76,54]) #插入体育成绩到第一列
df.loc['李四弟']=['男',100,100,100,100,100] #把李四弟的成绩都改成100
df.loc[:,'语文']=[20,20,20,20] #把语文成绩都改成20
df.loc['钱五叔']=['男',100,100,100,100,100] #新增一行钱五叔,各科成绩都是100
df.loc[:,'英语']+=10 #把英语成绩都加10
df.columns=['性别','体育','语文','数学','English','物理']
df.drop(['体育','物理'],axis=1,inplace=True) #删除体育、物理2列成绩,axis=1代表操作列,inplace=True代表改变原来的数组
df.drop('王二姐',axis=0,inplace=True) #删除王二姐的成绩,axis=0代表操作行,inplace=True代表改变原来的数组
df.drop([df.index[i] for i in range(1,3)],axis=0,inplace=True) #删除第1、2行
df.drop([df.columns[i] for i in range(3)],axis=1,inplace=True) #删除第1到2列
print(df)

数据分析库pandas相关推荐

  1. 学习篇之数据分析库pandas

    import numpy as np import pandas as pd #导入numpy.pandas模块 Series 数据结构(带有标签的一维数组) # Series 是带有标签的一维数组, ...

  2. python数据分析最基本的库_Python数据分析库pandas基本操作方法_python

    下面就为大家分享一篇Python数据分析库pandas基本操作方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可 ...

  3. 一文入门 Python 数据分析库 Pandas

    Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的使用. Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的 ...

  4. Python数据分析库pandas基本操作

    pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可爱.... 我们来看看pandas的官网是怎么来定义自己的: pandas is an open source, easy- ...

  5. Python数据分析库pandas高级接口dt的使用详解

    Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,本文着重讨论 ...

  6. Python数据分析库pandas高级接口dt的使用

    Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.今 ...

  7. pandas追加写入excel_快速介绍Python数据分析库pandas的基础知识和代码示例

    "软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重·要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个 ...

  8. python数据分析知识点_快速介绍Python数据分析库pandas的基础知识和代码示例

    "软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个p ...

  9. Python数据分析库pandas高级接口dt和str的使用

    Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.本 ...

最新文章

  1. 你可以把编程当做一项托付终身的职业
  2. CSS样式学习-CSS 背景
  3. linux makefile 宏定义
  4. 【错误记录】Android Gradle 配置报错 ( gradle.properties 配置到 BuildConfig 中需要注意类型转换 | 位置: 类 BuildConfig )
  5. 每天学一点儿shell:正则表达式
  6. 关于 vim 的 magic 设置
  7. 3.改变 HTML 内容
  8. zabbix监控部署 与添加主机
  9. mysql zrm_mysql数据库备份—ZRM
  10. 软件开发管理(产品经理客户和程序员互撕解决方案)
  11. react打包服务器文件,react项目搭建及打包发布
  12. [C++][代码库]Vector3空间向量类
  13. 78oa mysql_78OA系统安装后无法打开解决方案
  14. thymeleaf路径问题
  15. LINUX SHELL删除文件中的回车(WINDOWS转LINUX)
  16. 转~ubuntu的一些常用软件
  17. 运维工程师绩效考核表_运维人员初步 度绩效考核表
  18. ORA-02287:此处不允许序号
  19. 三维重建KInectFusion 学习笔记
  20. ActiveMq createSession DUPS_OK_ACKNOWLEDGE

热门文章

  1. 【已禁用】WeixinJSBridge:微信浏览器内置JavaScript 对象
  2. 游戏手机排行榜2023 游戏手机哪款最好用
  3. 设计模式——装饰模式
  4. 爱玛“2022追星计划”打造摩登复古风,再掀电动车潮流革命
  5. 计组——相关名词释义和考法
  6. 魔兽世界私服架设教程—魔兽大服务器合并列表
  7. 【Ceph】Ceph介绍、原理、架构
  8. DirectFb 标准键盘键值查找过程
  9. 关于VRRP的一些验证
  10. 4.js运算符,js三目运算符