当前位置: 移动技术网 > IT编程>脚本编程>Python > python数据处理,pandas包中DataFrame和Series的常用方法整理

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

2020年08月01日  | 移动技术网IT编程  | 我要评论
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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网