利用pandas、Ipython來簡化數據分析過程

  最近小爬我爲了提高數據分析這塊兒的技能,學習了pandas庫做者Wes Mckinney的數據分析經典書籍《利用Python進行數據分析》,受益良多!裏面涉及到Python語言基礎、還有編程利器Ipython、Jupyter notebook的使用小技巧,數組分析工具Numpy以及pandas的基礎入門和深刻知識,甚至還包含繪圖與可視化的相關知識。在學習過程當中,小爬深入感覺到:工欲善其事必先利其器。有了好的工具加持,數據分析再也不是難事!python

小爬先說說以前不知道但在該書中提到的Ipython的一些技巧:sql

一、Tab補全數據庫

相較於標準python命令行,Ipython的提高之一就是tab補全功能。當在命令行輸入表達式時,按下Tab鍵便可爲任意變量(對象、函數等)搜索命名空間,與當前已輸入的字符進行匹配:編程

   

Tab補全 在其餘不少上下文場景中也有用。當輸入任意路徑時,按下Tab鍵將補全你的計算機文件系統中匹配你輸入內容的值:數組

二、內省數據結構

在一個變量名的先後使用問號(?)能夠顯示一些關於該對象的重要信息:函數

好比咱們想知道print函數的用法,就能夠這樣操做:工具

 

 假設有這麼一個函數:學習

def  add_numbers(a,b):
  """
  Add two numbers together
  Returns
  -------
  the_sum:type of arguments
  """
  return a+b
 
使用?來顯示文檔字符串:

使用雙問號甚至能夠顯示函數的源代碼:spa

三、%run命令

能夠在Ipython會話中使用%run命令運行任意的python程序文件,如:

四、中斷運行中的代碼

在任意代碼運行時按下Ctrl-C,不管腳本運行到哪一步,都會引發keyboardInterrupt。除了一些特殊狀況,這致使全部的python程序當即中止運行。

五、Ipython的常見快捷鍵

- Ctrl-P 或上箭頭鍵   後向搜索命令歷史中以當前輸入的文本開頭的命令
- Ctrl-N 或下箭頭鍵   前向搜索命令歷史中以當前輸入的文本開頭的命令
- Ctrl-R          按行讀取的反向歷史搜索(部分匹配)
- Ctrl-Shift-v      從剪貼板粘貼文本
- Ctrl-C        停止當前正在執行的代碼
- Ctrl-A        將光標移動到行首
- Ctrl-E        將光標移動到行尾
- Ctrl-K        刪除從光標開始至行尾的文本
- Ctrl-U        清除當前行的全部文本譯註12
- Ctrl-F        將光標向前移動一個字符
- Ctrl-b        將光標向後移動一個字符
- Ctrl-L        清屏

  小爬再來講說Pandas,它所包含的數據結構和數據處理工具的設計使得在python中進行數據清洗和分析異常方便和快捷。

咱們通常這樣導入Pandas:

import pandas as pd

pandas中有兩個很是有名的類Series Dataframe,若是隻想導入這兩個類,能夠這樣:

from pandas import Series,Dataframe


一、Series

Series是一維數組對象,它包含一個值序列,而且含數據標籤,稱爲索引(Index):

咱們能夠經過values屬性和Index屬性分別得到Series對象的值和索引:

咱們能夠基於條件查找特定值:

它也能夠逐元素進行簡單運算:

咱們還能夠這樣做邏輯判斷:

咱們甚至能夠根據python字典快速生成一個Series對象:

 

 咱們還能夠用一個列表對象當成參數傳給series對象看成索引(元素個數必須一致)

Series的索引能夠經過按位置賦值的方式進行改變:

 

二、Dataframe

Dataframe表示的是矩陣的數據表,它包含已排序的列集合,每一列能夠是不一樣的值類型,這跟咱們熟悉的excel工做表太像了,因此不少本來用Excel來做的數據分析就可使用Dataframe來處理,畢竟它的運算速度堪比數據庫sql語句,比通常的excel計算快很多。

咱們有多種方法去建立DataFrame,最經常使用的方法是利用包含等長度列表或Numpy數組的字典來生成DataFrame,產生的DataFrame會自動爲Series分配索引,而且列會按照排序的順序排列:

對於大型DataFrame,head方法將會只選出頭部的五行:

 

 若是你指定了列的順序,DataFrame的列會按照指定順序排列:

咱們能夠指定DataFrame的索引:

DataFrame中的一列,能夠將字典型標記或屬性那樣檢索爲Series:

  

咱們也能夠用df[字段名]表示法:

  

del方法能夠用於移除以前新建的列:

mark,後續會再記錄更多的pandas使用心得,並應用到實際的項目中!

相關文章
相關標籤/搜索