立一个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 |