版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章Pandas
《Python数据分析与应用》pandaspandas是基于NumPy的数据分析工具,官方网址是。pandas提供了快速,灵活和富有表现力的数据结构,目的是使“关系”或“标记”数据的工作既简单又直观。Pandas用于数据清洗,对噪音等数据进行处理,从而便于机器学习和数据分析。pandaspandas常用6个类Series:基本数据结构,一维标签数组,能够保存任何数据类型DataFrame:基本数据结构,一般为二维数组,是一组有序的列Index:索引对象,负责管理轴标签和其他元数据(比如轴名称)groupby:分组对象,通过传入需要分组的参数实现对数据分组Timestamp:时间戳对象,表示时间轴上的一个时刻Timedelta:时间差对象,用来计算两个时间点的差值Pandas2个重要类创建Series
创建Series对象的函数是Series,它的主要参数是data和index,其基本语法格式如下。pandas.Series(data=None,
index=None,
name=None)
参数说明如下:data:接收array或dict。表示接收的数据。默认为None。index:接收array或list。表示索引,必须与数据长度相同name:接收string或list。表示Series对象的名称。默认为None。通过ndarray创建Seriesimportpandasaspdimportnumpyasnpprint('通过ndarray创建的Series为:\n',pd.Series(np.arange(5),index=['a','b','c','d','e'],name='ndarray'))通过dict创建Seriesdict的键作为Series的索引,dict的值作为Series的值,无须传入index参数。通过dict创建Series对象,代码如下所示:importpandasaspddict={'a':0,'b':1,'c':5,'d':3,'e':4}print('通过dict创建的Series为:\n',pd.Series(dict))通过list创建Seriesimportpandasaspdlist1=[0,1,5,3,4]print('通过list创建的Series为:\n',pd.Series(list1,index=['a','b','c','d','e'],name='list'))Series属性Series拥有8个常用属性,如下所示。values:以ndarray的格式返回Series对象的所有元素index:返回Series对象的索引dtype:返回Series对象的数据类型shape:返回Series对象的形状nbytes:返回Series对象的字节数ndim:返回Series对象的维度size:返回Series对象的个数T:返回Series对象的转置访问Series的属性importpandasaspdseries1=pd.Series([1,5,3,4])print("series1:\n{}\n".format(series1))print("series1.values:{}\n".format(series1.values))#数据print("series1.index:{}\n".format(series1.index))#索引print("series1.shape:{}\n".format(series1.shape))#形状print("series1.ndim:{}\n".format(series1.ndim))#维度访问Series数据通过索引位置访问Series的数据与ndarray相同,importpandasaspdseries5=pd.Series([1,5,3,4,5,6,7],index=["C","D","E","F","G","A","B"])#通过索引位置访问Series数据子集print("series5位于第1位置的数据为:",series5[0])#通过索引名称(标签)也可以访问Series数据print("Eis{}\n".format(series5["E"]))更新Seriesimportpandasaspdseries1=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series1:\n{}\n".format(series1))#更新元素series1['a']=3print('更新后的Series1为:\n',series1)追加Series和插入单个值importpandasaspdseries1=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series1:\n{}\n".format(series1))series1=pd.Series([4,5],index=['f','g'])#追加Seriesprint('在series插入series1后为:\n',series.append(series1))删除Series元素importpandasaspdseries=pd.Series(list1,index=['a','b','c','d','e'],name='list')print("series:\n{}\n".format(series))#删除数据series.drop('e',inplace=True)print('删除索引e对应数据后的series为:\n',series)。DataFrameDataFrame是pandas基本数据结构,类似数据库中的表。DataFrame既有行索引,也有列索引,可以看作是Series组成的dict,每个Series是DataFrame的一列
创建DataFrameDataFrame函数用于创建DataFrame对象,其基本语法格式如下pandas.DataFrame(data=None,
index=None,
columns=None,
dtype=None,
copy=False)参数说明如下所示:data:接收ndarray、dict、list或DataFrame。表示输入数据。默认为None。index:接收Index,ndarray。表示索引。默认为None。columns:接收Index,ndarray。表示列标签(列名)。默认为None。通过dict创建DataFrameimportpandasaspddict1={'col1':[0,1,5,3,4],'col5':[5,6,7,8,9]}print('通过dict创建的DataFrame为:\n',pd.DataFrame(dict1,index=['a','b','c','d','e']))通过list创建DataFrameimportpandasaspdlist5=[[0,5],[1,6],[5,7],[3,8],[4,9]]print('通过list创建的DataFrame为:\n',pd.DataFrame(list5,index=['a','b','c','d','e'],columns=['col1','col5']))通过Series创建DataFrameimportpandasaspdnoteSeries
=
pd.Series(["C",
"D",
"E",
"F",
"G",
"A",
"B"],
index=[1,
5,
3,
4,
5,
6,
7])weekdaySeries
=
pd.Series(["Mon",
"Tue",
"Wed",
"Thu","Fri",
"Sat",
"Sun"],
index=[1,
5,
3,
4,
5,
6,
7])df4
=
pd.DataFrame([noteSeries,
weekdaySeries])print("df4:\n{}\n".format(df4))DataFrame属性values:以ndarray的格式返回DataFrame对象的所有元素index:返回DataFrame对象的Indexcolumns:返回DataFrame对象的列标签dtypes:返回DataFrame对象的数据类型axes:返回DataFrame对象的轴标签ndim:返回DataFrame对象的轴尺寸数size:返回DataFrame对象的个数shape:返回DataFrame对象的形状更新DataFrameimportpandasaspddf=pd.DataFrame({'col1':[0,1,5,3,4],'col5':[5,6,7,8,9]},index=['a','b','c','d','e'])print('DataFrame为:\n',df)#更新列df['col1']=[10,11,15,13,14]print('更新列后的DataFrame为:\n',df)插入和删除DataFrameimportpandasaspddf3=pd.DataFrame({"note":["C","D","E","F","G","A","B"],"weekday":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]})print("df3:\n{}\n".format(df3))df3["No."]=pd.Series([1,5,3,4,5,6,7])#采用赋值的方法插入列print("df3:\n{}\n".format(df3))deldf3["weekday"]#删除列的方法有多种,如del、pop、dropprint("df3:\n{}\n".format(df3))Index
(1)
隐式创建
创建Series或DataFrame等对象时,索引会转换为Index对象
(2)显式创建
Index对象可以通过pandas.Index()函数创建
。
plotMatplotlib绘制一张图表需要各个基础组件对象,工作量较大。而pandas中使用行标签和列标签以及分组信息,较为简便的完成图表的制作。散点图
importnumpyasnpimportpandasaspdwdf=pd.DataFrame(np.arange(20),columns=['W'])wdf['Y']=wdf['W']*1.5+2wdf.iloc[3,1]=128wdf.iloc[18,1]=150wdf.plot(kind='scatter',x='W',y='Y')
条形图importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdf2=pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])df2.plot.bar()plt.show()
直方图与密度图importpandasaspdimportnumpyasnp
n1=np.random.normal(loc=10,scale=5,size=1000)n2=np.random.normal(loc=50,scale=7,size=1000)n=np.hstack((n1,n2))s=pd.DataFrame(data=n)s.plot(kind='hist',bins=100,density=True)s.plot(kind='kde')
箱线图importnumpyasnpimportpandasaspd
wdf=pd.DataFrame(np.arange(20),columns=['W'])wdf['Y']=wdf['W']*1.5+2wdf.iloc[3,1]=128wdf.iloc[18,1]=150importmatplotlib.pyplotaspltplt.boxplot(wdf)plt.show()面积图importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltdf=pd.Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经济师2024年度工作计划范文
- 学校某年纪检工作计划某年小学学校工作计划
- 岭南师范学院《设计表现技法》2021-2022学年第一学期期末试卷
- 岭南师范学院《国际物流管理》2021-2022学年第一学期期末试卷
- 临沂大学《光学》2021-2022学年第一学期期末试卷
- 聊城大学东昌学院《C语言程序设计》2023-2024学年第一学期期末试卷
- 聊城大学《高级日语一》2023-2024学年第一学期期末试卷
- 岭南师范学院《英语演讲与辩论》2021-2022学年第一学期期末试卷
- 服装销售服装销售2024年度工作计划
- 学校艺术教育工作计划集合
- 《人力资源管理》-课件-第八章-国际人力资源管理
- 颅脑损伤课件
- 原材料情况说明范本
- 植物工厂简介
- 齿轮轴 机械加工工艺过程卡片
- 人教版八年级上册数学全册课件PPT
- 新能源系统 课件 第10章 多能互补、可持续能源系统
- 抗生素类药物分析-抗生素类药物概述(药物分析课件)
- 肝硬化门静脉高压食管胃静脉曲张出血防治指南课件
- 硫化矿尘的爆炸条件及预防措施
- 人教版六年级上册科学期末测试题(含答案)
评论
0/150
提交评论