版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GA/T 946.2-2025道路交通管理信息采集规范第2部分:机动车登记信息采集和签注
- 幼儿园教师职业倦怠早期预警指标-基于2023年心理健康普查数据建模
- 公司法原理与实务
- 山东省济宁市兖州区2025-2026学年高二下学期期中考试地理试卷
- 煤矿岗位责任制考核标准
- 环保工程监理大纲
- 冷链运输车辆温控数据实时留存溯源管理办法
- 海南琼海市2026年广播电视播音员主持人资格考试(广播电视播音主持业务)复习题库含答案
- 养老机构访客探视时间规范及行为管理办法
- 2026年天津市政府采购代理机构从业人员考试强化复习试题及答案
- 2026年中国邮政集团新疆维吾尔自治区分公司招聘笔试参考题库附带答案详解
- 汉俄标题语言的多维对比与解析
- 雨课堂学堂在线学堂云《人工智能与创新(南开)》单元测试考核答案
- 2026年精神分裂症诊疗与康复指南课件
- GA/T 2336-2025法医临床学人体体表损伤检验规范
- 县委宣传部财务制度
- 2026年备考房地产经纪人之业务操作能力测试试题高频卷附答案
- 2025广东佛山顺德农商银行秋季招聘(行测)综合能力测试题附答案
- 烘焙业导购岗位课件
- 2025福建省能源石化集团有限责任公司秋季招聘416人参考考试试题及答案解析
- 2026届高考政治一轮复习:统编版必修1~4+选择性必修1~3全7册必背考点提纲汇编
评论
0/150
提交评论