Pandas 入门
重新索引(reindex)
obj.reindex(['a','b','c','d','e'],fill_value=0)
索引值不存在则引入缺失值
obj3 = Series(['blue','purple','yellow'], index=[0,2,4])
obj3.reindex(range(6), method='ffill')
methodffill 或 pad 前向填充(或搬运)值
bfill 或 backfill 后向填充(或搬运)值
dataframe
frame = DataFrame(np.arange(9).reshape(3,3), index=['a','c','d'],columns=['Ohio','Texas','California'])
ix
reindex 参数 index,method , fill_value,limit,level ,copy
丢弃指定轴上的项
obj = Series(np.arange(5.), index=['a','b','c','d','e'])
new_obj = obj.drop('c')
data = DataFrame(np.arange(16).reshape((4,4)), index= ['Ohio','Colorado','Utah','New York'], columns= ['one','two','three','four'])
data.drop('two',axis=1)
索引、选取和过滤
利用标签的切片运算与普通Python的不同,末端是包含的。
obj[val] 选取DataFrame的单个列或一组列。 切片 或布尔型 选行
data[:2] data[data['three']>5]
obj.ix[val] 选取单个行或一组行obj.ix[:,val] 选取单个列或列子集
obj.ix[val,val] 同时选取行和列
reindex方法 将一个或多个轴匹配到新索引
xs方法 根据标签选取单行或单列,并返回一个Series
icol、irow方法
get_value、set_value方法
算术运算和数据对齐
pandas最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。
自动的数据对齐操作在不重叠的索引处引入了NA值。缺失值会在算术运算过程中传播。
DataFrame也是类似的情况。
df1.add(df2, fill_value=0)
方法: add() 加法;sub() 减法; div() 除法; mul() 乘法DataFrame与Series之间的算术甲酸会将Series的索引匹配到DataFrame的列,若找不到则形成并集
函数应用与映射
Numpy的ufuncs(元素级数组方法)也可用于操作pandas对象
f = lambda x: x.max() - x.min()
frame.apply(f)
def f(x):
rentur Series([.....],index=[...])
frame.apply(f)
格式化的字符串
DataFrame
format = lambda x: '%.2f' %x
frame.applymap(format)
frame['e'].map(format)
排序和排名
使用sort_index(axis=0,ascending=True)方法,它将返回一个已排序的新对象。 默认0轴,升序。
按值排序可用order方法
obj=Series([4,np.nan,7,np.nan,-3,2])
obj.order()
DataFrame 可通过by调整 frame.sort_value(by=['a',''b'])Ranking(排名)会增加一个排名值
obj.rank(method='average',ascending=True)
frame.rank(axis=0)
method 方法: 'average' 默认,在相等分组中,为各个值分配平均排名
'min' 使用整个分组最小排名
'max' 使用整个分组最大排名
'first' 原始数据中的出现顺序分配排名
带有重复值的轴索引
当标签不唯一时,则返回一个Series。DataFrame也是类似。