Python数据分析学习笔记(二)

来源:互联网 发布:化妆软件哪个好 编辑:程序博客网 时间:2024/05/01 12:23

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')
method
ffill 或 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')

dataframe

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' %xframe.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也是类似。









原创粉丝点击