您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 第7章--Pandas数据结构
Python数据分析第7章pandas基本操作第2页2021/7/222021/7/22•pandas主要提供了3种数据结构:Series,带标签的一维数组;DataFrame,带标签且大小可变的二维表格结构;Panel,带标签且大小可变的三维数组。7.1pandas基本操作第3页2021/7/222021/7/22•pandas主要有6种数据类型:int:整型数,整数;float:浮点数;object:Python对象类型,用‘O’表示;string_:字符串类型;unicode_:固定长度的unicode类型,跟字符串定义方式一样;datetime64[ns]:表示时间格式。7.1pandas基本操作第4页2021/7/222021/7/221.生成一维数组importnumpyasnpimportpandasaspdx=pd.Series([1,3,5,np.nan])x01.013.025.03NaNdtype:float647.1pandas基本操作•numpy中的np.nan和inf:nan(NAN,Nan):notanumber表示不是一个数字,当读取本地的文件为float的时候,如果有缺失,就会出现nan;或者做了一个不合适的计算的时候(比如无穷大(inf)减去无穷大)inf(-inf,inf):infinity,inf表示正无穷,-inf表示负无穷。一个数字除以0,python中直接会报错,numpy中是一个inf或者-inf。np.nan和np.nan不相等;nan和任何数值计算都为nan;第5页2021/7/222021/7/22pd.Series(range(5))#把Python的range对象转换为一维数组0011223344dtype:int32pd.Series(range(5),index=list('abcde'))#指定索引a0b1c2d3e4dtype:int3257.1pandas基本操作第6页2021/7/222021/7/22pd.date_range(start='20180101',end='20181231',freq='H')#间隔为小时DatetimeIndex(['2018-01-0100:00:00','2018-01-0101:00:00','2018-01-0102:00:00','2018-01-0103:00:00','2018-01-0104:00:00','2018-01-0105:00:00','2018-01-0106:00:00','2018-01-0107:00:00','2018-01-0108:00:00','2018-01-0109:00:00',...'2018-12-3015:00:00','2018-12-3016:00:00','2018-12-3017:00:00','2018-12-3018:00:00','2018-12-3019:00:00','2018-12-3020:00:00','2018-12-3021:00:00','2018-12-3022:00:00','2018-12-3023:00:00','2018-12-3100:00:00'],dtype='datetime64[ns]',length=8737,freq='H')7.1pandas基本操作第7页2021/7/222021/7/22pd.date_range(start='20180101',end='20181231',freq='D')#间隔为天DatetimeIndex(['2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05','2018-01-06','2018-01-07','2018-01-08','2018-01-09','2018-01-10',...'2018-12-22','2018-12-23','2018-12-24','2018-12-25','2018-12-26','2018-12-27','2018-12-28','2018-12-29','2018-12-30','2018-12-31'],dtype='datetime64[ns]',length=365,freq='D')7.1pandas基本操作第8页2021/7/222021/7/22dates=pd.date_range(start='20180101',end='20181231',freq='M')#间隔为月datesDatetimeIndex(['2018-01-31','2018-02-28','2018-03-31','2018-04-30','2018-05-31','2018-06-30','2018-07-31','2018-08-31','2018-09-30','2018-10-31','2018-11-30','2018-12-31'],dtype='datetime64[ns]',freq='M')7.1pandas基本操作第9页2021/7/222021/7/222.二维数组DataFrame的操作(1)生成二维数组pd.DataFrame(np.random.randn(12,4),#数据index=dates,#索引columns=list('ABCD'))#列名ABCD2018-01-311.0609000.697288-0.058990-0.4874992018-02-28-0.3533291.160652-0.2776491.076672018-03-312.323984-0.435853-0.591344-0.7543952018-04-30-0.077860-0.4328901.3186150.1255102018-05-31-0.993383-1.064773-0.430447-3.0735722018-06-30-0.390067-1.5496390.9849161.0467702018-07-311.6992421.0880681.531813-0.4303812018-08-310.0447890.602462-1.990035-0.4507422018-09-30-0.200117-0.656987-0.198375-0.0189992018-10-31-0.326242-0.105304-1.5128760.1667722018-11-30-0.057293-1.153748-0.8756831.784722018-12-31-0.2855070.937567-0.8910660.1350787.1pandas基本操作第10页2021/7/222021/7/22df=pd.DataFrame({'A':np.random.randint(1,100,4),'B':pd.date_range(start='20180301',periods=4,freq='D'),'C':pd.Series([1,2,3,4],index=['zhang','li','zhou','wang'],dtype='float32'),'D':np.array([3]*4,dtype='int32'),'E':pd.Categorical([test,train,test,train]),'F':'foo'})dfABCDEFzhang602018-03-011.03testfooli362018-03-022.03trainfoozhou452018-03-033.03testfoowang982018-03-044.03trainfoo7.1pandas基本操作第11页2021/7/222021/7/22(2)查看二维数组数据df.head()#默认显示前5行,不过这里的df只有4行数据ABCDEFzhang602018-03-011.03testfooli362018-03-022.03trainfoozhou452018-03-033.03testfoowang982018-03-044.03trainfoodf.head(3)#查看前3行ABCDEFzhang602018-03-011.03testfooli362018-03-022.03trainfoozhou452018-03-033.03testfoodf.tail(2)#查看最后2行ABCDEFzhou452018-03-033.03testfoowang982018-03-044.03trainfoo7.1pandas基本操作第12页2021/7/222021/7/227.1pandas基本操作(3)查看二维数组数据的索引、列名和值df.index#查看索引Index(['zhang','li','zhou','wang'],dtype='object')df.columns#查看列名Index(['A','B','C','D','E','F'],dtype='object')df.values#查看值array([[60,Timestamp('2018-03-0100:00:00'),1.0,3,'test','foo'],[36,Timestamp('2018-03-0200:00:00'),2.0,3,'train','foo'],[45,Timestamp('2018-03-0300:00:00'),3.0,3,'test','foo'],[98,Timestamp('2018-03-0400:00:00'),4.0,3,'train','foo']],dtype=object)12第13页2021/7/222021/7/227.1pandas基本操作(4)查看二维数组数据的统计信息df.describe()#平均值、标准差、最小值、最大值等信息ACDcount4.0000004.0000004.0mean59.7500002.5000003.0std27.3541591.2909940.0min36.0000001.0000003.025%42.7500001.7500003.050%52.5000002.5000003.075%69.5000003.2500003.0max98.0000004.0000003.013第14页2021/7/222021/7/227.1pandas基本操作(5)对二维数组进行排序操作df.sort_index(axis=0,ascending=False)#对索引进行降序排序ABCDEFzhou452018-03-033.03testfoozhang602018-03-011.03testfoowang982018-03-044.03trainfooli362018-03-022.03trainfoo14第15页2021/7/222021/7/227.1pandas基本操作df.sort_index(axis=0,ascending=True)#对索引升序排序ABCDEFli362018-03-022.03trainfoowang982018-03-044.03trainfoozhang602018-03-011.03testfoozhou452018-03-033.03testfoo15第16页2021/7/222021/7/227.1pandas基本操作df.sort_index(axis=1,ascending=False)#对列进行降序排序FEDCBAzhangfootest31.02018-03-0160lifootrain32.02018-03-0236zhoufootest33.02018-03-0345wangfootrain34.02018-03-049
本文标题:第7章--Pandas数据结构
链接地址:https://www.777doc.com/doc-8609965 .html