Pandas简介Pandas最常用于处理数据集。它具有分析、清理、探索和操作数据的功能。“Pandas”这个名字指的是“面板数据”和“Python数据分析”,Pandas允许我们分析大数据并根据统计理论得出结论。Pandas可以清理杂乱的数据集并使它们具有可读性和相关性。相关数据在数据科学中非常重要。安装Pandas使用pip安装Pandas。pipinstallpandasPandas中的数据类型Pandas中使用了两种类型的对象。一个是“系列”,用于创建和存储一维值,例如列或行。另一个是“DataFrame”,可以将其视为表格:它是二维的。DataFrame包含行和列。PandasDataFrames将在数据科学中频繁使用。Python写代码的时候可以创建Series和DataFrames,但是一般情况下,Pandas上不会创建DataFrames:数据是从别处导入的,因为写程序的时候很难把所有的数据都一一打出来。此数据通常采用逗号分隔值(.csv)文件的形式。可以使用Pandas将.csv文件转换为DataFrame,然后你可以用它做很多事情。SeriesSeries与NumPy数组非常相似(实际上它建立在NumPy数组对象之上)。NumPy数组与Series的不同之处在于Series可以具有轴标签,这意味着它可以通过标签进行索引,而不仅仅是数字位置。它也不需要保存数字数据,它可以保存任意Python对象。系列索引和数据列表代码示例。importpandasaspdimportnumpyasnpindex=['China','Canada','Mexico']data=[1820,1920,1921]mySeries=pd.Series(data,index)print(mySeries)ran_data=np.random.randint(0,100,4)print(ran_data)names=['Sam','Ram','Max','Bob']ages=pd.Series(ran_data,names)print(ages)pdSeries=pd.Series(数据=[100,250,400,500],index=['Q1Sales','Q2Sales','Q3Sales','Q4Sales'],name='RedBullSales2021')print(pdSeries)代码运行输出结果如图下图来自PythonDictionary生成系列代码示例。importpandasaspdage={'Bob':15,'Frank':23,'Mailo':18}dictSeries=pd.Series(age)print(dictSeries)代码运行输出如下图所示:Series的namedindex,类似于获取字典值的具体方法请参考下面的代码示例。这里需要注意的是,如果取值失败,会直接expecterror,所以取值的时候一定要保证key和index存在。importpandasaspdq1={'Japan':80,'China':450,'India':200,'USA':250}q2={'Brazil':100,'China':500,'India':210,'USA':260}sales_q1=pd.Series(q1)sales_q2=pd.Series(q2)print(sales_q1)print(sales_q2)print(sales_q1['India'])print(sales_q2[2])代码运行结果如下图所示:Series还可以做一些数学运算,下面是代码示例。importpandasaspdq1={'Japan':80,'China':450,'India':200,'USA':250}q2={'Brazil':100,'China':500,'India':210,'USA':260}sales_q1=pd.Series(q1)sales_q2=pd.Series(q2)print(sales_q1.keys())#获取Series的keyprint(sales_q1.values)#获取valuesofSeriesnew_sales_q1=sales_q1*2print(new_sales_q1)float_sales_q1=sales_q1/100print(float_sales_q1)代码运行输出如下图所示:包含行和列的表格。创建一个DataFrame对象。将熊猫导入为pdimportnumpy作为npnp.random.seed(10)data=np.random.randint(0,101,(4,3))print(data)x=['CA','NY','AZ','TX']y=['Jan','Feb','Mar']df=pd.DataFrame(data,x,y)print(df)代码运行结果输出如下图:创建一个来自字典的DataFrame对象。importpandasaspddict_data=pd.DataFrame({'baidu':[10000,20000],'aliyun':[30000,45000]},index=['Exicutive','Techie'])print(dict_data)代码运行结果输出如下图所示:读取csv文件创建DataFrame对象。读取csv文件需要安装xlrd和openpyxl模块。pipinstallxlrdpipinstallopenpyxlimportpandasaspddf_csv=pd.read_csv("Employees.csv")#读取csv文件#df_excel=pd.read_excel("xxx.excel")#读取excel文件print(df)coderunresultoutput:GetDataFrame的基本信息。返回所有列名importpandasaspddf=pd.read_csv("Employees.csv")df.columns返回数据的前几行importpandasaspddf=pd.read_csv("Employees.csv")df.head(5)returns几行数据importpandasaspddf=pd.read_csv("Employees.csv")df.tail(3)获取数据信息importpandasaspddf=pd.read_csv("Employees.csv")df.info生成描述statisticsimportpandasaspddf=pd.read_csv("Employees.csv")df.describe()df.describe().transpose()#如何改变表格的对齐方式来过滤数据?单一条件针对每一行测试的单一条件,如头、尾函数。多个条件可以在一行中测试多个条件。以下示例返回女性工资大于5000的情况。将熊猫导入为pddf=pd.read_csv("Employees.csv")filter1=df["salary"]>5000filter2=df["gender"]=="F"result=filter1&filter2df[result].head(3)使用查询方法查询方法提供了一种替代方法,通常比上述方法更易读的过滤数据的方法。表示条件的字符串被传递给查询方法以过滤数据。importpandasaspddf=pd.read_csv("Employees.csv")df.query('salary>8000').head(2)importpandasaspddf=pd.read_csv("Employees.csv")df.query('Salary>5000andgender=="F"')聚合方法聚合的技术定义是将一个范围内的值用单个数字进行聚合。例如sum、mean、median、max和min都是聚合方法的例子importpandasaspddf=pd.DataFrame({'user':['Alice','Tom','Bob','Alice','Bob','Alice'],'money':range(6)})df.groupby(['user']).sum()#sumaggregationconclusion这些是Pandas中基本操作的一些例子。也可以在Pandas中创建数据可视化。本文转载自微信公众号《爱编码社畜》,可关注下方二维码。转载本文请联系Aicode社畜公众号。
