立一個flag這周認(rèn)真再看numpy, pandas, matplotlib的文檔,認(rèn)真做筆記。供自己以后看,希望能幫到其他人吧(會慢慢更新?。?/p>
pandas的數(shù)據(jù)都可以類比于字典,這樣的結(jié)構(gòu)比較容易理解,但是對計算機操作就比較麻煩,可能這大概是它比ndarray要慢的原因吧
- Series
| 名字 | 功能 |
|---|---|
| Series.index | 這不是一個方法,而是一個attrs,所有后面沒有接字符(如果出現(xiàn)了用()這樣的方法,說明你這個其實是一個callable的,東西,但是這個其實不是callable,因為是一個array) |
| Series.values | 記得s不要漏了 返回的也是一個array,但是卻是內(nèi)容組成 |
| Series['index'] | 通過index來訪問數(shù)據(jù),這個index雖然你可以自己添加了很多index,但是默認(rèn)通過數(shù)字的那種編碼還是存在的。但是你要是用了數(shù)字的版本的新index,就會已新版本為主。換句說,每一次都先看看你自己定義的那種。(相當(dāng)于,有兩套index訪問策略,有浮點數(shù)的那種也就只能通過默認(rèn)的index進(jìn)行訪問了,但要是默認(rèn)的在自定義中出現(xiàn)了,那就GG了)(對了,最好不要設(shè)置浮點數(shù)的index,會報keyerror的) |
| dict轉(zhuǎn)Series | 默認(rèn)使用key作為Index,Value作為Value |
| 也可以自己設(shè)置index | 要是在設(shè)置的index在dict中沒有,就會自動補全,順序默認(rèn)按照設(shè)定的index順序(但是dict中有的index,就一定要是在自定義中的index存在才行) |
| pd.isnull(Series) | 返回的也是一個Series,但是值變成了bool,這個判斷value是不是NaN。但是Key還是一樣的,都是Series本身自帶的index |
| Series1 + Series2 | 返回值會按照index進(jìn)行排序,會找到對應(yīng)的index的value進(jìn)行相加。要注意的是,Series檢查到默認(rèn)的值為NaN 。如果有一者為NaN,那么加起來也是NaN |
| Series.name | Series 對象本身的名字,默認(rèn)是none |
| Series.index.name | 設(shè)置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,獲取所有表格內(nèi)部信息(返回ndarray) |
| DataFame['index'] | 這個index可以是列名,如果是數(shù)字,就會默認(rèn)使用行號來做拿到行,這個要留意。返回的是一個Series |
| DataFrame.index | 前面的index不是指index,而是任意的列名。具體拿到某一個列的列參數(shù)attr |
| DataFrame.iloc[ , ] | 通過行列數(shù)字進(jìn)行查找(要求是具體數(shù)字)通過這個也可以看到對每一個橫著的Series都是有一個對象名稱,具體是index對應(yīng)的值。可省略逗號,默認(rèn)是對行進(jìn)行操作,跟下面的類似 |
| DataFrame.loc[ , ] | 這時候就需要寫具體的行列名字了 (這個跟上面的操作都支持切片) |
| DataFrame['column'] = value | 如果value是一個單一的值的話,就會將整一列的元素全部變?yōu)関alue。如果是長度剛剛好的list,也就會完全替代。而且list長度只能剛剛好,否者會報錯 |
| del DataFrame['column'] | 這樣的方式來進(jìn)行刪除某一列 |
| DataFrame['column1'] = list | 前面的list就換成一個具體的list就好了,這樣就會自動添加一個。在列的最右端 |
| DafaFrame.index.min() | 這里的index不是index,而是具體的某一列的列名。然后用一個min函數(shù)作用一下就好了。拿出來的這一列就是一個Series。當(dāng)然取一行,得到的也是一個Series |
| DataFrame[DataFrame.index >= value] | 常用的篩選方法。要清楚上面的Series如果是用括號符的時候,得到的是一個bool值的Series對象。類比于看上面的pd.isnull(Series)函數(shù) |
| DataFrame.index >= value | 返回的是有對象名的Series,對象名就是index。但是上面的取法跟對象名沒有關(guān)只是得到了一個對應(yīng)的bool值Series,你甚至換一個bool的list都是可以這樣篩選出來的。本質(zhì)上就是想要得到一個bool序列,通過這個序列來生成DataFrame |