Pandas学习

【Pandas学习】立一个flag这周认真再看numpy, pandas, matplotlib的文档,认真做笔记。供自己以后看,希望能帮到其他人吧(会慢慢更新!)
pandas的数据都可以类比于字典,这样的结构比较容易理解,但是对计算机操作就比较麻烦,可能这大概是它比ndarray要慢的原因吧
  • Series
名字 功能
Series.index 这不是一个方法,而是一个attrs,所有后面没有接字符(如果出现了用()这样的方法,说明你这个其实是一个callable的,东西,但是这个其实不是callable,因为是一个array)
Series.values 记得s不要漏了 返回的也是一个array,但是却是内容组成
Series['index'] 通过index来访问数据,这个index虽然你可以自己添加了很多index,但是默认通过数字的那种编码还是存在的。但是你要是用了数字的版本的新index,就会已新版本为主。换句说,每一次都先看看你自己定义的那种。(相当于,有两套index访问策略,有浮点数的那种也就只能通过默认的index进行访问了,但要是默认的在自定义中出现了,那就GG了)(对了,最好不要设置浮点数的index,会报keyerror的)
dict转Series 默认使用key作为Index,Value作为Value
也可以自己设置index 要是在设置的index在dict中没有,就会自动补全,顺序默认按照设定的index顺序(但是dict中有的index,就一定要是在自定义中的index存在才行)
pd.isnull(Series) 返回的也是一个Series,但是值变成了bool,这个判断value是不是NaN。但是Key还是一样的,都是Series本身自带的index
Series1 + Series2 返回值会按照index进行排序,会找到对应的index的value进行相加。要注意的是,Series检查到默认的值为NaN 。如果有一者为NaN,那么加起来也是NaN
Series.name Series 对象本身的名字,默认是none
Series.index.name 设置index对象的名字(字段名)
Series > value 返回一个btype为bool的Series对象(换成 >= / == 之类的肯定都是一样的啦)
  • DataFrame 可以看作是对于同一index的Series集合
方法 解释
DataFrame(dict) pd.DataFrame({'column1':[1,2,3], 'column2':['a', 'c', 'd']}) 注意D和F要大写
DataFrame(array) pd.DataFrame(np.array([(1, 'a'), (2, 'c'), (3, 'd')]) ,column=['column1', 'column2'])
DataFrame.index attr,查看index(最左边的那一列)
DataFrame.columns attr,查看列名
DataFrame.values attr,获取所有表格内部信息(返回ndarray)
DataFame['index'] 这个index可以是列名,如果是数字,就会默认使用行号来做拿到行,这个要留意。返回的是一个Series
DataFrame.index 前面的index不是指index,而是任意的列名。具体拿到某一个列的列参数attr
DataFrame.iloc[ , ] 通过行列数字进行查找(要求是具体数字)通过这个也可以看到对每一个横着的Series都是有一个对象名称,具体是index对应的值。可省略逗号,默认是对行进行操作,跟下面的类似
DataFrame.loc[ , ] 这时候就需要写具体的行列名字了 (这个跟上面的操作都支持切片)
DataFrame['column'] = value 如果value是一个单一的值的话,就会将整一列的元素全部变为value。如果是长度刚刚好的list,也就会完全替代。而且list长度只能刚刚好,否者会报错
del DataFrame['column'] 这样的方式来进行删除某一列
DataFrame['column1'] = list 前面的list就换成一个具体的list就好了,这样就会自动添加一个。在列的最右端
DafaFrame.index.min() 这里的index不是index,而是具体的某一列的列名。然后用一个min函数作用一下就好了。拿出来的这一列就是一个Series。当然取一行,得到的也是一个Series
DataFrame[DataFrame.index >= value] 常用的筛选方法。要清楚上面的Series如果是用括号符的时候,得到的是一个bool值的Series对象。类比于看上面的pd.isnull(Series)函数
DataFrame.index >= value 返回的是有对象名的Series,对象名就是index。但是上面的取法跟对象名没有关只是得到了一个对应的bool值Series,你甚至换一个bool的list都是可以这样筛选出来的。本质上就是想要得到一个bool序列,通过这个序列来生成DataFrame

    推荐阅读