我写的pandas不是我国可爱的大熊猫国宝。Pandas是一个基于NumPy的工具,它是为解决数据分析任务而创建的。Pandas整合了大量库和一些标准数据模型,提供了高效操作大型数据集所需的工具。pandas提供了大量的函数和方法,可以让我们快速方便地处理数据。您很快就会发现,它是使Python成为强大而高效的数据分析环境的原因之一。一、pandas数据结构简介系列:一维数组,类似于Numpy中的一维数组。两者也很像Python的基本数据结构List。Series现在可以保存不同的数据类型,字符串、布尔值、数字等都可以保存在Series中。时间序列:按时间索引的序列。DataFrame:二维表格数据结构。很多功能类似于R中的data.frame,DataFrame可以理解为Series的容器。Panel:一个三维数组,可以理解为一个DataFrame容器。2.Series操作2.1对象创建2.1.1直接创建2.1.2字典创建importpandasaspdimportnumpyasnp#directcreations=pd.Series(np.random.randn(5),index=['a','b','c','d','e'])print(s)#dictionary(dict)类型数据创建s=pd.Series({'a':10,'b':20,'c':30},index=['b','c','a','d'])OUT:a-0.620323b-0.189133c1.677690d-1.480348e-0.539061dtype:float64OUT:a10b20c30dtype:int642.2查看数据切片、索引、Sincedict操作Series是一个一维数组类型的数据结构,它支持像数组一样操作它。它可以通过数组下标索引和切片来操作,它的数据可以是dict类型,所以它也必须支持字典索引。importpandasaspdimportnumpyasnps=pd.Series(np.random.randn(5),index=['a','b','c','d','e'])print(s)#subscriptindexprint('下标indexmethods[0]=:%s'%s[0])#字典访问方式print('字典访问方式s[b]=:%s'%s['b'])#分片操作print('切片操作s[2:]\n:%s'%s[2:])print('a'ins)print('k'ins)OUT:a-0.799676b-1.581704c-1.240885d0.623757e-0.234417dtype:float64下标索引法s[0]=:-0.799676067487字典访问法s[b]=:-1.58170351838分片操作s[2:]:c-1.240885d0.623757e-0.234417TrueFalse2.3级数运算opimportpandasaspdimportnumpyasnps1=pd.Series(np.random.randn(3),index=['a','b','c'])s2=pd.Series(np.random.randn(3),index=['a','b','c'])打印(s1+s2)打印(s1-s2)打印(s1*s2)打印(s1/s2)OUT:a0.236514b-0.132153c0.203186dtype:float64a0。305397b-1.474441c-1.697982dtype:float64a-0.009332b-0.539128c-0.710465dtype:float64a-7.867120b-1.196907c-0.786252dtype:float643.dataframeOperation3.','1state:In=[Ohio','Nevada','Nevada'],'year':[2000,2001,20...:02,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}在[71]:dataOut[71]:{'pop':[1.5,1.7,3.6,2.4,2.9],'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002]}#创建DataFrame对象In[72]:frame1=DataFrame(data)#红色部分为自动生成的indexIn[73]:frame1Out[73]:popstateyear01.5Ohio200011.7Ohio200123.6Ohio200232.4Nevada200142.9Nevada2002>>>lista=[1,2,5,7]>>>listb=['a','b','c','d']>>>df=pd.DataFrame({'col1':lista,'col2':listb})>>>dfcol1col201a12b25c37d3.2选择数据In[1]:importnumpyasnp...:importpandasas...:df=pd.DataFrameIn[2]:dfOut[2]:abc00241681021214163182022424262853032346363840742444684850529545658In[3]:df.loc[0,'c']Out[3]:4In[4]:df.loc[1:4,['a','c']]Out[4]:ac1610212163182242428In[5]:df.iloc[0,2]Out[5]:4In[6]:df.iloc[1:4,[0,2]]Out[6]:ac161021216318223.3函数应用frame=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['Utah','Ohio','Texas','Oregon'])framenp.abs(frame)OUT:bdeUtah0.2047080.4789430.519439Ohio0.5557301.9657811.393406Texas0.0929080.2817463.769022464351.0071891.296221f=lambdax:x.max()-x.min()frame.apply(f)OUT:b1.802165d1.684034e2.689627dtype:float64deff(x):returnpd.Series([x.min(),x.max()],index=['min','max'])frame.apply(f)bdeUtah-0.200.48-0.52Ohio-0.561.971.39Texas0.090.280.77Oregon1.251.01-1.303.4统计概述和计算df=pd.DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=['a','b','c','d'],columns=['one','two'])dfOUT:onetwoa1.40NaNb7.10-4.5cNaNNaNd0.75-1.3df.info()df.describe()
