数据分析总结-pandas
Last updated
Was this helpful?
Last updated
Was this helpful?
[TOC]
Series是一个一维的数据结构
pandas会默认用0到n来作为Series的index,但是我们也可以自己指定index
还可以用dictionary来构造一个Series,因为Series本来就是key value pairs。
前面定义的index就是用来选择数据的
apts[apts <= 50000] = 40000
boolean indexing也可以用到pandas中来取值
apts[apts < 50000]
apts / 2
apts * 2
np.square(apts)
square也可以写成 :apts 2
apts.notnull()
apts.isnull():
apts[apts.isnull()] 获取值为空的key,value
apts[apts.isnull() == False] 获取值不为空的key,value
一个Dataframe就是一张表格,Series表示的是一维数组,Dataframe则是一个二维数组,可以类比成一张excel的spreadsheet。也可以把Dataframe当做一组Series的集合。
dataframe可以由一个dictionary构造得到。
columns的名字和顺序可以指定
frame2['city'] = frame2.city
frame2.ix['three']: 这种是选取行index
frame2.ix[2] :这种方法默认用来选列而不是选行
还可以用Series来指定需要修改的index以及相对应的value,没有指定的默认用NaN.
指定index的顺序,以及使用切片初始化数据
我们还可以指定index的名字和列的名字
一个DataFrame就和一个numpy 2d array一样,可以被转置: frame2.T
index的值是不能被更改的
针对index进行索引和切片
obj = pd.Series(np.arange(4), index=['a','b','c','d'])
默认的数字index依旧可以使用
如何对Series进行切片
对DataFrame进行Indexing与Series基本相同
把一个Series或者DataFrame按照新的index顺序进行重排
在reindex的同时,我们还可以重新指定columns
可以用drop来删除Series和DataFrame中的index
obj3.drop(2)
obj3.drop([2, 4])
unstack和stack可以帮助我们在hierarchical indexing和DataFrame之间进行切换。
data.unstack()
pd.merge(df1, df4, on='cities')
join on index
df1.join(df4)
df1.join(df4, how='outer')
也可以用merge来写:pd.merge(df1, df4, left_index=True, right_index=True, how='outer')
在concatenate的时候可以指定keys,这样可以给每一个部分加上一个Key。
以下的例子就构造了一个hierarchical index。相当于再加一级index
用inner可以去掉NaN
用append来做concatenation
df1.append(df4)
可以通过append添加一个row
Series和DataFrame还可以被一起concatenate,这时候Series会先被转成DataFrame然后做Join,因为Series本来就是一个只有一维的DataFrame对吧。
groupby经常和aggregate一起使用
describe这个function可以为我们展示各种有用的统计信息
bikes.dropna() 删除空值
dropna会删除所有带NA的行