'first' 按值在原始数据中出现的顺序排名
C.DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。
DataFrame可以通过类似字典的方式或者.columnname的方式将列获取为一个Series。行也可以通过位置或名称的方式进行获取。
为不存在的列赋值会创建新列。
>>> del frame['xxx'] # 删除列
属性
说明
values
DataFrame的值
index
行索引
index.name
行索引的名字
columns
列索引
columns.name
列索引的名字
ix
返回行的DataFrame
ix[[x,y,...], [x,y,...]]
对行重新索引,然后对列重新索引
T
frame行列转置
2.2.C.1 DataFrame常用属性
函数
说明
DataFrame(dict, columns=dict.index, index=[dict.columnnum])
DataFrame(二维ndarray)
DataFrame(由数组、列表或元组组成的字典)
DataFrame(NumPy的结构化/记录数组)
DataFrame(由Series组成的字典)
DataFrame(由字典组成的字典)
DataFrame(字典或Series的列表)
DataFrame(由列表或元组组成的列表)
DataFrame(DataFrame)
DataFrame(NumPy的MaskedArray)
构建DataFrame
数据矩阵,还可以传入行标和列标
每个序列会变成DataFrame的一列。所有序列的长度必须相同
类似于“由数组组成的字典”
每个Series会成为一列。如果没有显式制定索引,则各Series的索引会被合并成结果的行索引
各内层字典会成为一列。键会被合并成结果的行索引。
各项将会成为DataFrame的一行。索引的并集会成为DataFrame的列标。
类似于二维ndarray
沿用DataFrame
类似于二维ndarray,但掩码结果会变成NA/缺失值
df.reindex([x,y,...], fill_value=NaN, limit)
df.reindex([x,y,...], method=NaN)
df.reindex([x,y,...], columns=[x,y,...],copy=True)
返回一个适应新索引的新对象,将缺失值填充为fill_value,最大填充量为limit
返回适应新索引的新对象,填充方式为method
同时对行和列进行重新索引,默认复制新对象。
df.drop(index, axis=0)
丢弃指定轴上的指定项。
排序函数
说明
df.sort_index(axis=0, ascending=True)
df.sort_index(by=[a,b,...])
根据索引排序
汇总统计函数
说明
df.count()
非NaN的数量
df.describe()
一次性产生多个汇总统计
df.min()
df.min()
最小值
最大值
df.idxmax(axis=0, skipna=True)
df.idxmin(axis=0, skipna=True)
返回含有最大值的index的Series
返回含有最小值的index的Series
df.quantile(axis=0)
计算样本的分位数
df.sum(axis=0, skipna=True, level=NaN)
df.mean(axis=0, skipna=True, level=NaN)
df.median(axis=0, skipna=True, level=NaN)
df.mad(axis=0, skipna=True, level=NaN)
df.var(axis=0, skipna=True, level=NaN)
df.std(axis=0, skipna=True, level=NaN)
df.skew(axis=0, skipna=True, level=NaN)
df.kurt(axis=0, skipna=True, level=NaN)
df.cumsum(axis=0, skipna=True, level=NaN)
df.cummin(axis=0, skipna=True, level=NaN)
df.cummax(axis=0, skipna=True, level=NaN)
df.cumprod(axis=0, skipna=True, level=NaN)
df.diff(axis=0)
df.pct_change(axis=0)
返回一个含有求和小计的Series
返回一个含有平均值的Series
返回一个含有算术中位数的Series
返回一个根据平均值计算平均绝对离差的Series
返回一个方差的Series
返回一个标准差的Series
返回样本值的偏度(三阶距)
返回样本值的峰度(四阶距)
返回样本的累计和
返回样本的累计最大值
返回样本的累计最小值
返回样本的累计积
返回样本的一阶差分
返回样本的百分比数变化
计算函数
说明
df.add(df2, fill_value=NaN, axist=1)
df.sub(df2, fill_value=NaN, axist=1)
df.div(df2, fill_value=NaN, axist=1)
df.mul(df2, fill_value=NaN, axist=1)
元素级相加,对齐时找不到元素默认用fill_value
元素级相减,对齐时找不到元素默认用fill_value
元素级相除,对齐时找不到元素默认用fill_value
元素级相乘,对齐时找不到元素默认用fill_value
df.apply(f, axis=0)
将f函数应用到由各行各列所形成的一维数组上
df.applymap(f)
将f函数应用到各个元素上
df.cumsum(axis=0, skipna=True)
累加,返回累加后的dataframe
2.2.C.2 Dataframe常用函数
索引方式
说明
df[val]
选取DataFrame的单个列或一组列
df.ix[val]
选取Dataframe的单个行或一组行
df.ix[:,val]
选取单个列或列子集
df.ix[val1,val2]
将一个或多个轴匹配到新索引
reindex方法
将一个或多个轴匹配到新索引
xs方法
根据标签选取单行或者单列,返回一个Series
icol、irow方法
根据整数位置选取单列或单行,并返回一个Series
get_value、set_value
根据行标签和列标签选取单个值
2.2.C.3 Dataframe常用索引方式
运算:
默认情况下,Dataframe和Series之间的算术运算会将Series的索引匹配到的Dataframe的列,沿着列一直向下传播。若索引找不到,则会重新索引产生并集。
D.Index
pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。Index对象不可修改,从而在多个数据结构之间安全共享。
主要的Index对象
说明
Index
最广泛的Index对象,将轴标签表示为一个由Python对象组成的NumPy数组
Int64Index
针对整数的特殊Index
MultiIndex
“层次化”索引对象,表示单个轴上的多层索引。可以看做由元组组成的数组
DatetimeIndex
存储纳秒级时间戳(用NumPy的Datetime64类型表示)
PeriodIndex
针对Period数据(时间间隔)的特殊Index