pandas对象
Index对象
index对象可以看成是不可变的一维数组 。输入高维数组,会打印出一维的,但仍然是高维的,索引依旧需要用到高维数组的索引。
index主要类型
Index #最广泛的Index对象,将轴标签表示为一个由Python对象组成的NumPy数组
Int64Index #针对整数的特殊Index
CategoricalIndex#类别索引,类别只能包含有限数量的(通常是固定的)可能值(类别)
MultiIndex #“层次化”索引对象,表示单个轴上的多层索引。可以看做由元组组成的数组
DatetimeIndex #存储纳秒级时间戳(用NumPy的Datetime64类型表示)
PeriodIndex #针对Period数据(时间间隔)的特殊Index
属性
Index对象名.name #名称
Index对象名.array #pandasarray数组
Index对象名.values #arry数组
Index对象名.size #元素数量
Index对象名.shape #形状
Index对象名.ndim #维度数
Index对象名.dtype #数据类型
Index对象名.empty #是否为空
Index对象名.is_unique #是否不重复
Index对象名.has_duplicates #是否有重复值
Index对象名.names #名称列表
Index对象名.is_all_dates #是否全是日期
Index.is_monotonic #当各元素大于前一个元素时,返回true
Index.unique #计算Index中唯一值的数组
函数
Index对象名([x,y,...]) #创建索引
append对象名(Index) #连接另一个Index对象,产生一个新的Index
Index对象名.astype() #转换类型
Index对象名.isin([]) #列表中的值是否存在
Index对象名.nunique() #不重复值的数量
Index对象名.sort_values() #排序
Index对象名.map(lambda x:x+'_') #map函数处理
Index对象名.str.replace() #str替换
Index对象名.str.split() #分隔
Index对象名.to_list() #转为列表
Index对象名.to_frame(index=F,) #转为dataframe
Index对象名.to_series() #转为series
Index对象名.to_numpy() #转为numpy
Index对象名.unique() #去重
Index对象名.value_counts() #去重及计数
Index对象名.where(index=='') #筛选
Index对象名.rename() #修改索引名称
Index对象名.rename('',inplace=F) #重命名索引
Index对象名.rename([]) #多层,重命名索引
Index对象名.max() #最大值
Index对象名.argmax() #最大索引值
Index对象名.any() #
Index对象名.all() #
Index对象名.T #转置,多层索引有用
Index对象名.delete(1) #删除指定位置
Index对象名.difference() #
Index对象名.drop('a',errors='') #删除
Index对象名.drop_duplicates() #去重值keep='first'
Index对象名.droplevel(0) #删除层级
Index对象名.dropna(how='all') #删除空值
Index对象名.equals(index) #判断与另一个索引对象是否相同
Index对象名.fillna(0,{0:'nan'}) #填充空值
Index对象名.format(name=True,formatter=lambda x:x+10)
#字符列表,把name值加在第一位,每个值加10
Index对象名.isna() #array是否为空
Index对象名.isnull() #array是否缺失值
df对象名.add_prefix('t_') #表头加前缀
df对象名.add_suffix('_d') #表头加后缀
Index对象名.diff(Index) #计算差集,产生一个新的Index
Index对象名.intersection(Index) #计算交集
Index对象名.union(Index) #计算并集
isin(Index) #检查是否存在与参数索引中,返回bool型数组
Index对象名.delete(i) #删除索引i处元素,得到新的Index
Index对象名.drop(str) #删除传入的值,得到新Index
Index对象名.insert(i,str) #将元素插入到索引i处,得到新Index
DataFrame对象
查看数据方法——三种
df.head() #前部数据,默认5条,可指定条数。
df.tail() #尾部数据,默认5条,可指定条数。
df.sample() #一条随机数据,可指定条数。
属性
df.shape #形状
df.info #显示所有数据的类型、索引、行列数、各字段数据类型、内存占用等
df.dtypes #返回每个字段和df的数据类型
df.axes #返回一个列内容和行内容组成的列表
df.index
df.columns
df.values #所有值的列表矩阵
df.ndim #维度
df.size #总数据数
df.empty
df.keys() #列名
方法
#描述统计
df.describe() #所有数字列的统计表
#如果没有数字,则会输出与字符相关的统计数据,如数量、不重复值数、最大值(字符按首字母顺序)等
#数学统计(df使用统计函数后会生成一个Series)
df.mean() #返回所有列的均值
df.mean(1) #返回所有行的均值
df.corr() #返回列与列之间的相关系数
df.count() #返回每一列中的非空值的个数
df.max()
df.min()
df.abs()
df.median() #返回每一列的中位数
df.std() #标准差
df.var() #无偏方差
df.sem() #平均值的标准误差
df.mode() #众数
df.prod() #连乘
df.mad() #平均绝对偏差
df.cumprod() #累积连乘
df.cumsum(axis=0) #累积连加
df.nunique() #去重数量,不同值的量
df.idxmax() #每列最大值的索引名
df.idxmin() #每列最小值的索引名
df.cummax() #累积最大值
df.cummin() #累积最小值
df.skew() #样本偏度
df.kurt() #样本峰度
df.quantile() #样本分位数
#非统计计算
df.all() #返回所有列all()值的Series
df.any() #any()一个序列中满足一个True,则返回True;
#all()一个序列中所有值为True时,返回True,否则为False。
df.round(2) #指定字段指定保留小数位
df.round({'Q1':2,'Q2':0})
df.round(-1) #保留10位
df.nunique()
df.isna()
df.notna()
df + 1
df.add()
df.sub() #减
df.mul() #乘
df.div() #除
df.mod() #模
df.pow() #指数幂
df.dot(df2) #矩阵运算
#位置计算
df.diff() #相邻差值,下一行作为被减数
df.diff(-1) #差值,上一行作为被减数
df.diff(1,axis=1) #左右差值,右-左
df.shift() #整体向下移一行,最顶行为NaN
df.shift(-1) #向上一行
df.shift(axis=1) #向右一列
df.shift(-1,axis=1) #向左一列
#df.diff() = df - df.shift()
df.rank() #生成数据的排序值替换原来的值
df.rank(axis=1) #横向排序值
df.rank(pct=True) #讲序数转换成0-1的数
df.rank(method=) #指定的排序过程中,遇到相同值的序数计算方法
#method:average、min、max、first、dense按索引
数据选择
df[col] #选择列
df.loc[label] #按索引选择行
df.iloc[loc] #按数字索引选择行
df[5:10] #使用切片选择行
df[bool_vec] #使用表达式筛选行
df.at[<索引>,<列名>] #取具体值
df.at[] #取具体值,仅支持数字索引
df.get(key,default=None)#获取数据,无值取第二个参数
df.truncate(before,after)#数据截取,取before和after之间的行
#索引选择器
pd.IndexSlice[] #使用方法与.loc类似
df.loc的格式是df.loc[<行表达式>, <列表达式>]
df.iloc[<行表达式>, <列表达式>]
以上为基础的pandas操作,码字不易,点个赞支持一下,马上更新进阶操作。2022-6-13