学校网站logo怎么做,wordpress模版如何汉化,杭州ppt设计公司,安徽网站公司网站pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算#xff0c;但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumP… pandas包含数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷。pandas经常是和NumPy,Scipy以及数据可视化工具matplotlib一起使用的。pandas支持大部分NumPy语言风格的数组计算但最大的不同在于pandas是用于处理表格型或异质型数据的。而NumPy更适合处理同质型的数值类数组数据。 在第一次学习Pandas的过程中你会发现你需要记忆很多的函数和方法。所以在这里我们汇总一下Pandas官方文档中比较常用的函数和方法以方便大家记忆。df任意的Pandas DataFrame对象s 任意的Pandas Series对象一、关键包导入import pandas as pdimport numpy as np二、导入数据pd.read_csv(filename) 逗号是默认分隔符pd.read_table(filename) 制表符(\t)是默认分隔符pd.read_excel(filename) 读取Excel数据pd.read_sql(query, connection_object)从SQL表/库导入数据pd.read_json(json_string)读JSON格式pd.DataFrame(dict)从字典对象导入数据Key是列名Value是数据pd.read_csv(flie,header,sep,na_values,skiprows,nrows,chunksize,index_col,names) header用作列名的行号默认是0(第一行)如果没有列名的话应该是Nonesep用于分隔每行字段的字符序列或是正则表达式na_values需要用NA替换的值序列skiprows从文件开头处起需要跳过的行数或行号列表nrows从文件开头处读入的行数chunksize用于迭代的块大小index_col用作结果中行索引的列号或列名可以是一个单一的名称/数字,也可以是一个分层索引names结果的列名列表三、导出数据df.to_csv(filename)导出数据到CSV文件df.to_excel(filename)导出数据到Exceldf.to_sql(table_name, connection_object)导出数据到SQL表df.to_json(filename)以Json格式导出数据到文本文件四、创建对象objpd.Series([4,7,-5],index[a,b,c])objpd.DataFrame(data,columns[year],index[one])五、查看数据df.head(n)查看DataFrame对象的前n行df.tail(n)查看DataFrame对象的最后n行df.info()查看索引、数据类型和内存信息df.shape查看行数和列数df.describe()查看数值型列的汇总统计df.dtypes每一列数据的格式df.isnull()查看某一列空值df.columns 查看列名称df.values查看数据表的值df[B].unique()查看某一列的唯一值s.value_counts()查看Series对象的唯一值和计数df.apply(pd.value_counts).fillna(0)查看DataFrame对象中每一列的唯一值和计数,并对NA填充0六、数据选取df[col]根据列名并以Series的形式返回列df[[col1, col2]]以DataFrame形式返回多列df[n:m]以DataFrame形式返回n到m-1行df.loc[val]根据标签选择单行或多行df.loc[:,val]根据标签选择单列或多列df.loc[val1,val2]同时选择行和列的一部分df.iloc[where]根据整数位置选择单行或多行df.iloc[:,where]根据整数位置选择单列或多列df.iloc[where_i,where_j]根据整数位置选择行和列*loc切片是首尾闭区间iloc切片是首闭尾开七、数据清洗df.columns [a,b,c]重命名列名pd.isnull()检查DataFrame对象中的空值pd.notnull()检查DataFrame对象中的非空值df.dropna()删除所有包含空值的行df.dropna(axis1)删除所有包含空值的列df.dropna(axis1,threshn)删除所有小于n个非空值的行df.fillna(x)用x替换DataFrame对象中所有的空值s.astype(float)将Series中的数据类型更改为float类型s.replace(1,one)用‘one’代替所有等于1的值s.replace([1,3],[one,three])用one代替1用three代替3df.rename(columnslambda x: x 1)批量更改列名df.rename(columns{old_name: new_ name})选择性更改列名df.set_index(column_one)更改索引列df.rename(indexlambda x: x 1)批量重命名索引df.drop_duplicates() 删除后出现的重复值df.drop_duplicates(keeplast)删除先出现的重复值df.drop_duplicates([k1]) 基于k1列删除重复值df[city]df[city].map(str.strip) pd.cut(data,4) 分箱八、数据处理df[df[col] 0.5]选择col列的值大于0.5的行df.sort_values(col1)按照列col1排序数据默认升序排列df.sort_values(col2, ascendingFalse)按照列col1降序排列数据df.sort_values([col1,col2], ascending[True,False])先按列col1升序排列后按col2降序排列数据df.groupby(col)返回一个按列col进行分组的Groupby对象df.groupby([col1,col2])返回一个按多列进行分组的Groupby对象df.groupby(city)[id].count() 按城市对id字段进行计数df.groupby(city)[price].agg([np.sum, np.mean])对city字段进行汇总并分别计算prince的合计和均值df.pivot_table(indexcol1,values[col2,col3], aggfuncmax)创建一个按列col1进行分组并计算col2和col3的最大值的数据透视表df.groupby(col1).agg(np.mean)返回按列col1分组的所有列的均值data.apply(np.mean)对DataFrame中的每一列应用函数np.meandata.apply(np.max,axis1)对DataFrame中的每一行应用函数np.max九、数据合并df1.append(df2)将df2中的行添加到df1的尾部pd.concat([df1, df2],axis1)将df2中的列添加到df1的尾部df1.join(df2,oncol1,howinner)对df1的列和df2的列执行SQL形式的joinpd.merge(df1,df2,onkey) : 按指定连接健合并*pd.concat():join接收inner或outer。表示其他轴向上的索引是按交集(inner)还是并集(outer)进行合并。默认为outer。当axis1的时候concat做行对齐然后将不同列名称的两张或多张表合并。当两个表索引不完全一样时可以使用join参数选择是内连接还是外连接。在内连接的情况下仅仅返回索引重叠部分。在外连接的情况下则显示索引的并集部分数据不足的地方则使用空值填补。axis0时同理*df.append():append方法也可以用于纵向合并两张表。但是append方法实现纵向表堆叠有一个前提条件那就是两张表的列名需要完全一致*pd.merge()常用参数十、数据统计df.describe()查看数据特征的汇总统计df.mean()返回所有列的均值df.corr()返回列与列之间的相关系数df.count()返回每一列中的非空值的个数df.max()返回每一列的最大值df.min()返回每一列的最小值df.idxmin()返回最小值所在的索引标签df.argmin()返回最小值所在的索引位置df.median()返回每一列的中位数df.std()返回每一列的标准差*传入axis’columns或者axis1则会对一行上各列值进行操作。除非整个切片都是NA否则NA值是自动被排除的可以通过禁用skipna来实现不排除NA值skipnaFalse文末福利 网上可以搜到大量的Pandas教程和官方文档但没有简单的方法来练习。教程是很好的资源但要付诸实践。只有实践才能更好的加深学习。针对pandas库函数的一些常用用法本站搜索到了一些关于Pandas的练习题含答案每一个类型包含了相应的练习数据、题目、注释以及解答等4个文件。大家可以根据自己的薄弱点针对性训练相信一定能有所提高关注本公众号后台回复【Pandas学习】即可获得这些练习题资料长按关注一路同行ID : 进阶的CVCoder一起寻找生命中的光.....