欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python数据处理,pandas包中DataFrame和Series的常用方法整理

程序员文章站 2024-01-25 19:44:10
pandas是python数据处理绝对会接触到的必备包,pandas也是python中最完备的数据处理工具。pandas所包含的Series和DataFrame工具分别处理数据列及数据框,学好这两个工具就再不用担心python数据处理啦。...


文章目录



Pandas

pandas是python中用于处理数据的常用包,主要用于处理表格型或者异质型数据,其经常与numpy或者scipy等数值计算工具包一起使用。pandas常用的三种数据类型为logical(逻辑型)、Numeric(数值型)和Character(字符型)。最常用的两种数据结构为Series(系列)和DataFrame(数据框)。要使用pandas处理数据就一定得会使用这两种数据结构。同时不要将这两种数据结构分开,这两种结构相互联系,DataFrame实际上就是Series的容器或是Series的‘放大版’,DataFrame的一列就是一个Series。因此两者的方法很多都能共用。

Series

目的 方法
创建一个Series: A=pd.Series([‘A’,‘B’,‘C’],index=[‘x’,‘y’,‘z’]) # 可依顺序传入index
根据索引访问 A[1]、A[‘y’] # 索引位置或者索引名皆可访问
追加元素 A.append([‘A’]) # Series只能追加一个Series,因此先将要追加的元素转换为Series即可添加。
判断值的存在 ‘p’ in A.values,还有isin,isnull或者notnull可以使用
切片 A[0:2] # 包含尾部哦
找索引号对应的index名 A.index[2]
删除元素 A.drop(1)、A.drop(‘y’)、A.drop(A.index[2]) # 索引位置或者索引名皆可
修改index A.index = [‘a’,‘b’,‘c’]
寻找某值存在的位置 A.index(A.values==‘z’)
唯一值 A.unique() # 返回唯一值,即所有出现过的值,但只输出一次

DataFrame

目的 方法
创建DataFrame df=pd.DataFrame({‘a’:[1,2,3],‘b’:[‘m’,‘n’,‘x’]},index=[‘s’,‘w’,‘e’]) # 由于是Series的容器,因此多个Series即可合并为DataFrame,字典也可以转为Series或者DataFrame
访问列 df[‘b’],df.iloc[:,1],df.loc[:,‘a’] # iloc使用排列的索引号进行访问,loc则使用索引名进行访问
访问行 df[2:3],df.iloc[2,:],df.loc[‘s’] # 若通过第一种切片访问,不能直接只输入df[2],这样会报错
访问指定位置 df.at[‘e’,‘a’] # 前面为行名,后面为列名,这是pandas的习惯,一般先解析行方向(axis=0)再解析列方向(axis=1)
寻找某值存在的位置 使用np.where()进行寻找
修改列名 df.columns=[‘f’,‘g’] 、df.rename(columns={‘a’:‘f’}) # 第一种传入的列名需要和之前的列的数量一样
修改index df.index=[‘q’,‘r’,‘t’]、df.rename(index={‘s’,‘q’} # 也可使用reindex方法
删除某行或某列 df.drop(‘s’,axis=0)、df.drop(‘b’,axis=1) 、del df[‘a’] #通过axis切换行列,默认为行(axis=0)
增加列 df[‘new’] = [2,5,8]
增加行 df.loc[‘e’] = [2,1]
合并DataFrame df.append(df1) # append可以选择使用ignore_index为True或False保留原来的索引,此外还有pd.concat(轴向),pd.merge(选择left_on,right_on,how等参数进行行方向的合并)
去重 df.duplicated(‘a’)、df.drop_duplicates(‘a’) #前者查看重复,后者用于去重,使用keep参数选择保留某个重复值,如keep=first或keep=last等
处理缺失值 df.dropna()、df.fillna() # 前者用于去除,后者用于填充缺失值
排序 df.sort_values([‘b’]) # 选择某一列即Series作为排序依据,ascending可以选择升降序,df.rank也可排序,但只返回排名
将某列设为索引列 df.set_index(‘a’)
撤销对index的修改 df.reset_index() # 有是否删除之前的索引的选项,drop=True
描述性统计 df.count()、df.describe()、df.min、df.max、df.idxmin、df.idxmax、df.sum、df.mean、df.cumsum、df.median、df.quantile、df.percentile、df.argmax、df.argmin # 等等,都是数学上的描述统计,有需要再查吧!
使用函数 将lambda函数使用apply或者map方法融入到对数据框的处理中
替换某个值 df.replace() # 但是不是很好用,之前失败过
对索引排序 df.sort_index() # 也可传入by=‘a’,效果同sort_values
分组 df.cut(‘a’,bins,labes=’’) # bins为分组依据,a为要分组的列,label为对分组进行的命名
计算个数 df[‘a’].value_counts() # 用于计算Series中值个数,但可对DataFrame使用apply方法df.apply(pd.value_counts)
inplace 在使用很多操作时可以加入inplace=True表示在原数据框上处理,并非新建数据框
对某些记录提取 df[条件] #t条件可以设置比较类,范围类,字符匹配或逻辑运算等
读取文件 pd.read_csv()、pd.read_table()、pd.read_Excel()等
输出文件 df.to_csv() # 可以选择使用index=False不输出索引列
广播机制 df - df[‘a’] # DataFrame可以减去Series从而得到新DataFrame,且是每一行都会减
转置(换方向) 即将DataFrame转置,直接使用df.T即可
遍历 for index, row in df.iterrows():

叮!

DataFrame和Series有很多方法,但是上面写的都是些比较常用的功能,或说是我比较常用吧,哈哈,有其它常用的再加!!!当然若是自己要使用的话,那自己也得探索一下嘛。

本文地址:https://blog.csdn.net/keepaware/article/details/108246550